1 merge 归并 将两个数组合并成一个(有序)
merge(iarray1,iarray+len1,iarray2,iarray2+len2,result); 升序
merge(iarray1,iarray+len1,iarray2,iarray2+len2,result,greater<int>()); 降序
2 reverse 元素反向
reverse(iarray,iarray+len1);
3 reverse_copy 元素反向复制
reverse(iarray,iarray+len,iarray_new); 复制到新的数组中
3 unique 剔除连续重复元素 ,剔除后元素的个数并不会减少,只是,后面的元素复制过来覆盖的前面被剔除的,如下面的例子
如果之前是 {1 ,2,3,3,4,4,5,6,6,8}
result=unique(v.begin()) ;
for_each(v.begin(),v.end(),print); 打印出来将是{1,2,3,4,5,6,8,6,6,8} 后面的元素依旧会存在
for_each(v.begin(),result,print) 打印出来将是{1,2,3,4,5,6,8}
4 最小元素 min_element 返回[first,last) 中最小的元素
5 最大元素 max_element 返回[first,last) 中最大的元素
6 for_each(v.begin(),v.end(),print) [v.begin(),v.end()) 里的每一个元素 都执行一次 print函数
7 查找容器元素 find
在迭代器区间[first,last)之间查找 元素值等于 value的 如果找到则返回 迭代器i 否则返回 last
result=find(v.begin(),v.end(),value);
8 条件查找容器元素 find_if
检查区间的每一个元素,如果满足谓词 pred(*i)==true 则返回 i;
find_if(v.begin(),v.end(),pred) pred为谓词判断函数
9 统计等于某值的容器元素个数 count
num=(v.begin(),v.end(),value) 返回 等于value的个数
10条件统计容器元素个数 count_if
num=(v.begin(),v.end(),pred) 返回满足 谓词pred判断的个数
11子序列搜索 search 若找到,则返回迭代器的值,否则返回last
iterLocation=search(first1,last1,first2,last2)
12区间元素交换 swap_rangs
swap_rangs(first1,last1,first2) 只要知道第二个的首地址就OK了,
13替换 replace
replace(first,last,oldvalue,newvalue)
14条件替换 replace_if
replace_if(first,last,odd,new) odd 条件替换函数
15移除 remove
result=remove(first,last,value) 为什么要返回迭代器result呢,因为实际上只是将不等于value的元素复制到了[first,result)区间
而 [result,last)区间的元素依然不变
16条件移除 remove_if
同上,只是加了一个谓词判断