《C++ Primer Plus(第六版)》(46)(STL函数汇总)

非修改性序列操作             

all_of() 如果所有元素的谓词测试都为true,则返回true,C++11
any_of() 只要有一个谓词测试为true,返回true,C++11
none_of() 如果所有测试都为false,则返回false,C++11
for_each() 对序列中的每个元素执行某操作。
find() 在序列中找出某个值的第一次出现的位置。
find_if() 在序列中找出符合某谓词的第一个元素。
find_end() 在序列中找出一子序列的最后一次出现的位置。
find_first_of() 在序列中找出第一次出现指定值集中之值的位置。
adjacent_find() 在序列中找出相邻的一对互相匹配的值。
count() 在序列中统计某个值出现的次数。
count_if() 在序列中统计与某谓词匹配的次数。
mismatch() 找出两个序列相异的第一个元素。
equal() 如果两个序列每个元素都相等,则返回true
is_permutation() 判断两个序列是否为同一个元素集的不同排列,C++11 
search() 在第一个序列中查找第一次与另一个序列匹配的序列。是序列的匹配
search_n() 查找第一个与n各元素组成的子序列,这个子序列的每个元素都要跟给定值匹配。


修改性序列操作
copy() 将一个区间中的元素复制到迭代器指定位置
copy_n() 从一个迭代器指定的地方复制n个元素到另一个迭代器指定地方,C++11
copy_if() 复制符合要求的元素,C++11
copy_backward() 从区间的结尾开始复制,由后向前进行。
move() 将一个区间中的元素移动到迭代器指定的地方,目标不能与源重叠,C++11
move_backward() 将一个区间中的元素移到迭代器指定地方,由后向前,C++11新增
swap() 交换指定位置中存储的值
swap_ranges() 换指定范围的元素,区间不能重叠。
iter_swap() 交换由迭代器所指的两个元素。
transform() 将某操作应用于指定范围的每个元素,并将返回的值复制到另一个区间的相应位置。
replace() 用一个给定值替换一些值。
replace_if() 替换满足谓词的一些元素。
replace_copy() 复制序列时用一给定值替换元素。
replace_copy_if() 复制序列时替换满足谓词的元素。
fill() 用一给定值取代所有元素。
fill_n() 用一给定值取代前n个元素。
generate() 用一操作的结果取代所有元素。
generate_n() 用一操作的结果取代前n个元素。
remove() 删除具有给定值的元素。
remove_if() 删除满足谓词的元素。
remove_copy()复制序列时删除具有给定值的元素。
remove_copy_if()复制序列时删除满足谓词的元素。
unique() 删除相邻的重复元素。
unique_copy() 复制序列时删除相邻的重复元素。
reverse() 反转元素的次序。
reverse_copy() 复制序列时反转元素的次序。
rotate() 循环移动元素。
rotate_copy() 复制序列时循环移动元素。
random_shuffle() 采用均匀分布来随机移动元素。
shuffle() 随机排列元素,使用的函数对象满足C++11对统一随机生成器的要求
is_partitioned() 如果区间根据指定的谓词进行了分区,则返回true
partition() 将满足某谓词的元素都放到前面。
stable_partition() 将满足某谓词的元素都放到前面并维持原来相对的顺序。
partition_copy() 将满足谓词对象的所有元素复制到一个输出区间中,并将其他元素复制到另一个区间中,C++11
partition_point() 对于根据指定谓词进行了分区的区间,返回一个迭代器,该迭代器指向第一个不满足该谓词的元素。


排序及相关操作
sort() 以很好的平均效率排序。
stable_sort() 排序,并维持相同元素的原有顺序。
partial_sort() 将序列的前一部分排好序。
partial_sort_copy() 复制的同时将序列的前一部分排好序。
is_sorted() 如果对区间进行了排序,则返回true,C++11
is_sorted_until() 返回一个迭代器,指向经过排序的区间末尾,C++11
nth_element() 将第n个元素放到它的正确位置。
lower_bound() 在排序后的区间找到可以插入这个值的第一个位置。就是找到大于等于某值的第一次出现的位置
upper_bound() 找到大于某值的第一次出现。
equal_range() 找到(在不破坏顺序的前提下)可插入给定值的最大范围。
binary_search() 在有序序列中确定给定元素是否存在。二分查找
merge() 归并两个有序序列。
inplace_merge() 归并两个接续的有序序列。
includes() 一序列为另一序列的子序列时为真。
set_union() 构造两个集合的并集。
set_intersection() 构造两个集合的交集。
set_difference() 构造两个集合的差集。
set_symmetric_difference() 构造两个集合的对称差集(并-交)。
push_heap() 向堆中加入元素。
pop_heap() 从堆中弹出最大的元素。
make_heap() 将序列转换成堆。
sort_heap() 给堆排序。
is_heap() 如果区间是堆,则返回true,C++11
is_heap_until() 返回堆区间的末尾,C++11
min() 两个值中较小的。如果是初始化列表,返回最小值,C++11
max() 两个值中较大的。如果是初始化列表,返回最大值,C++11
minmax() 返回一个pair对象,其中包含按递增顺序排列的两个参数,如果是初始化列表,返回最小和最大值,C++11
min_element() 序列中的最小元素第一次出现的位置。
max_element() 序列中的最大元素第一次出现的位置。
minmax_element() 返回pair,它们分别指向区间中最小值第一次出现的位置和最大值最后一次的位置。C++11
lexicographical_compare() 两个序列按字母顺序排序,如果第一个序列小于第二个序列,则返回true。
next_permutation() 按字典序的生成下一个排列。
prev_permutation() 按字典序的生成前一个排列。


数值运算
accumulate() 计算区间中的值的总和
inner_product() 计算2各区间的内部乘积
partial_sum() 将使用一个区间计算得到的小计复制到另一个区间中
adjacent_difference() 将使用一个区间的元素计算得到的相邻差集复制到另一个区间中
iota() 将使用运算符++生成的一系列相邻的值赋给一个区间中的元素,C++11.
posted @ 2017-01-05 23:51  肥宝游戏  阅读(162)  评论(0编辑  收藏  举报