泛型算法

来源:互联网 发布:java中md5加密和解密 编辑:程序博客网 时间:2024/05/17 03:13

12.5.1 查找算法
13 个查找算法为判断容器中是否存在一个值提供了各种策略equal_range()
lower_bound()和upper_bound()三个算法提供了二分查找的形式它们指出了一个值应该被插
入在容器中的哪个位置同时保留容器的排列顺序这13 个算法是
adjacent_find(), binary_search(), count(), count_if(), equal_range(),
find(), find_end(), find_first_of(), find_if(), lower_bound(),
upper_bound(), search(), search_n()
12.5.2 排序和通用整序算法
14 个排序sorting 和通用整序ordering 算法为容器中元素的排序提供了各种策略
分割partition 算法把容器分成两组第一组由满足某个条件的元素组成第二组则由不满
足条件的元素组成例如我们可以根据元素是奇是偶或单词是否以大写字母开头分割一
个容器稳定stable 算法维持了值相等或同等地满足某个条件的元素的相对关系例如
给出序列
{ "pshew", "honey", "Tigger", "Pooh" }
496 第十二章 泛型算法
根据单词是否以大写字母开头的稳定分割将生成下面的序列其中相等的类别中的原有
相对顺序被保留下来
{ "Tigger", "Pooh", "pshew", "honey" }
算法的非稳定实例并不保证这一点注意排序算法不能被用在list 或联合容器上如
set 或map
inplace_merge(), merge(), nth_element(), partial_sort(),
partial_sort_copy(), partition(), random_shuffle(), reverse(),
reverse_copy(), rotate(), rotate_copy(), sort(), stable_sort(),
stable_partition()
12.5.3 删除和替换算法
15 个删除和替换算法为替换或去掉一个或一组元素提供了各种策略unique()去掉相邻
的相等元素iter_swap()交换由一对iterator 指向的元素的值但它不交换iterator 本身这
15 个算法是
copy(), copy_backwards(), iter_swap(), remove(), remove_copy(),
remove_if(), remove_copy_if(), replace(), replace_copy(),
replace_if(), replace_copy_if(), swap(), swap_range(), unique(),
unique_copy()
12.5.4 排列组合算法
考虑由三个字符{a, b, c}组成的序列这个序列有六种可能的排列abc acb bac
bca cab 和cba 而且这些排列根据less_than 小于操作符做一个排序即abc 是第一排列
为什么因为每个元素都小于它后面的元素acb 是下一个排列因为a 是最小的元素它
被固定了类似地以b 开头的排列要小于所有以c 开头的排列对于排列bac 和bca bac
小于bca 因为ac 小于ca 对于排列bca 我们可以说它的上一个排列是bac 下一个排列是
cab abc 没有上一个排列而cba 没有下一个排列
next_permutation(), prev_permutation()
12.5.5 算术算法
下列4 个算法提供对于容器的算术操作为了使用它们必须包含头文件<numeric>
accumulate(), partial_sum(), inner_product(), adjacent_difference()
12.5.6 生成和异变算法
6 个生成和异变算法用一组值填充一个新序列或替换现有的序列
fill(), fill_n(),for_each(), generate(), generate_n(), transform().
12.5.7 关系算法
7 个关系算法为比较两个容器提供了各种策略min()和max()只是比较两个元素
497 第十二章 泛型算法
lexicographical_compare()提供了一个字典排序操作见附录中的讨论以及后面关于排列的讨

equal(), includes(), lexicographical_compare(), max(), max_element(),
min(), min_element(), mismatch()
12.5.8 集合算法
4 个集合set 算法提供了对于任何容器类型的通用集合操作并union 算法创建了
一个包含两个容器中所有元素的有序序列交intersection 算法创建了一个包含在两个容器
中都出现的元素的有序序列差difference 算法创建了在一个容器中存在而在第二容
器中不存在的元素的有序序列对称差symmetric difference 算法创建了一个在两个
容器之一中存在但不同时出现在两个容器中的元素的有序序列
set_union(), set_intersection(), set_difference(),
set_symmetric_difference()
12.5.9 堆算法
堆是以数组来表示二叉树的一种形式标准库提供了最大堆max-heap 表示它
里面每个节点的键值大于等于其子节点的键值
make_heap(), pop_heap(), push_heap(), sort_heap()

原创粉丝点击