非变易算法:原则上不会变更操作数据的算法。
[1] for_each:逐个容器元素,原型for_each(InputIter first, InputIter last, Function f)。
[2] find:顺序查找容器元素,原型InputIter find(InputIter first, InputIter last, constT &val, input_iterator_tag)。
[3] find_if:条件查找容器,原型InputIter find_if(InputIter first, InputIter last,Predicate pred, input_iterator_tag)。如查找首个能被5整除的元素。
[4] adjacent_find:邻近查找容器元素,用于查找相等或满足条件的邻近元素。如查找邻近元素奇偶性相同的元素。
[5] find_first_of:范围查找容器元素。
[6] count:统计等于某值的容器元素容器个数。
[7] count_if:条件统计容器元素个数,统计迭代器区间上满足条件的元素个数。如统计年龄在20~30之间的学生个数。
[8] mismatch:元素不匹配查找,逐一比较找出两个序列的首个不匹配元素的位置。返回值为pair对。
[9] equal:元素相等判断,逐一比较两个序列的元素是否相等(或是否满足判断条件)。例如判断两个vector容器的元素绝对值是否相等。
[10] search:子序列搜索,用于在一个序列中搜索与另一个序列匹配的子序列(或满足二元谓词判断条件)。实现:利用find函数查找第一个相同元素,接着比较其它元素是否相同。
[11] search_n:重复元素子序列搜索,用于搜索序列中是否有一系列元素值均为某个给定值的子序列(或满足谓词判断条件)。实现:利用find函数查找第一个相同元素,接着看相同元素个数是否等于count。
[12] find_end:最后一个子序列搜索,用于在一个序列中搜索出最后一个与另一个序列匹配的子序列。实现:调用search算法找到满足条件的子序列,然后判断出其后再没有匹配的子序列,即为最后一个匹配的子序列。