STL中常用的一些算法函数[持续更新]

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

同上,只是加了一个谓词判断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值