头文件 algorithm 中的常用函数

algorithm意为"演算法", 是C++的标准模版库(STL) 中最重要的头文件之一,提供了大量基于迭代器的非成员模版函数。

库函数:

accumulate 累加序列的所有元素
adjacent_difference 计算序列中的相邻元素是否不同
adjacent_find 查找相邻的两个相同(或者有其他关联)元素
any_of 如果对于任意元素的谓词测试都为true,则返回true (C++11)
all_of 如果对于所有元素的谓词测试都为true,则返回true (C++11)
binary_search 确定容器中是否存在某个元素
copy 拷贝元素到新的位置
copy_backward 逆序拷贝元素
count 返回匹配给定值的元素数目
count_if 返回符合条件的元素数目 (C++11)
equal 确定两个集合中的所有元素皆相同
equal_range 搜索序列中的由相同元素组成的子序列
fill 为一个序列赋值
fill_n 为序列中给定数目的元素赋值
find 在序列中查找一个匹配值的元素
find_end 在序列中查找最后出现的序列
find_first_of 在序列中查找给定集合的任一元素
find_if 在序列中查找第一个符合条件的元素
for_each 为序列中的每个元素应用指定的函数
generate 将函数的运行结果储存在一个序列中
generate_n 将N次驱动函数的结果储存在一个序列中
includes 检查一个集合是否是另外一个集合的子集
inner_product 计算两个序列的内积
inplace_merge 内置式归并
is_heap 检查给定的序列是否是堆 (C++11)
iter_swap 交换两个迭代器指向的元素
lexicographical_compare 按字典顺序检查一个序列是否小于另外一个序列
lower_bound 查找第一个插入元素但不影响序列有序性的位置
make_heap 创建一个堆并以序列的形式输出
max 返回两个元素间的较大者 (C++11)
max_element 返回序列中的最大者
merge 对两个有序序列进行归并处理
min 返回两个元素间的较小者 (C++11)
min_element 返回序列中的最小者
mismatch 查找两个序列的第一个不相同的位置
next_permutation 依照字典顺序生成序列的下一个稍大的排列
none_of 如果对于所有元素的谓词测试都为false,则返回true (C++11)
nth_element 插入一个元素至它的排序位置并确保它左边的元素都不大于它右边的元素
partial_sort 将序列中的前N个元素排序
partial_sort_copy 拷贝并部分排序
partial_sum 计算序列中部分元素之和
partition 将元素序列分成两组
pop_heap 从一个堆中移除最大的元素
prev_permutation 依照字典顺序生成序列的下一个稍小的排列
push_heap 添加一个元素至堆
random_shuffle 随机生成元素的一个排列
remove 移除给定值的所有元素
remove_copy 拷贝一个序列中元素的同时忽略那些匹配给定值的元素
remove_copy_if 拷贝一个序列中元素的同时忽略那些符合条件的元素
remove_if 移除序列中所有符合条件的元素
replace 将序列中的一些元素以另外一个值替换
replace_copy 拷贝一个序列并将其中一些替换为新值
replace_copy_if 拷贝一个序列的元素并替换掉那些符合条件的元素
replace_if 替换掉符合条件的元素
reverse 将给定序列反转顺序
reverse_copy 以逆序拷贝元素的方式创建序列的副本
rotate 调换一些元素到序列的左边
rotate_copy 拷贝并调换元素
search 搜索子序列
search_n 搜索N个连续的元素拷贝
set_difference 计算两个集合的差集
set_intersection 计算两个集合的并集
set_symmetric_difference 计算两个集合的对称差
set_union 计算两个集合的交集
sort 将序列按升序排序
sort_heap 将堆转变成有序序列
stable_partition 将元素划分成两组且维持原来的元素次序
stable_sort 将序列排序并且维持相等元素的原始次序
swap 交换两个对象的值
swap_ranges 交换两个序列的元素
transform 通过给定函数转换序列元素
unique 移除连续的重复元素
unique_copy 拷贝序列并忽略相同元素以创建一个无重复元素的集合
upper_bound 搜索最后一个插入元素并能维持序列有序性的位置(第一个稍大于给定值的位置)
 
 

头文件algorithm中的常用函数分类:

1. 查找算法 (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()

2. 排序(sorting)和通用(ordering)算法(14)
    提供元素的排序策略。
    其中stable算法保证相等元素的原来顺序不变。
inplace_merge()
merge()
nth_element()
partial_sort()
partial_sort_copy()
partition()
random_shuffle()
reverse()
reverse_copy()
rotate()
rotate_copy()
sort()
stable_sort()
stable_partition()

3. 删除和替换算法(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()

4. 排列组合算法(2)
    提供计算给定集合按一定顺序的所有可能的排列组合。
next_permutation()
prev_permutation()

5. 算术算法(4)
accumulate()
partial_sum()
inner_product()
adjacent_difference()

6. 生成和异变算法(6)
fill()
fill_n()
for_each()
generate()
generate_n()
transform()

7. 关系算法(7)
equal()
includes()
lexicographical_compare()
max()
max_element()
min()
min_element()
mismatch()

8. 集合算法(4)
set_union()        合并2个集合
set_intersection()    取交集
set_difference()       取第一个集合减去第二个集合
set_symmetric_difference()    取只在一个集合中存在的元素集合

9. 堆算法(4)
make_heap()
pop_heap()
push_heap()
sort_heap()

你可能感兴趣的:(Algorithm,常用函数)