<algorithm>、<numeric>中的一些函数

泛型算法本身不会执行容器的操作,它们只会运行于迭代器之上,执行迭代器的操作。算法永远不会改变底层容器的大小,算法可能会该百年容器中元素的值,也可能在容器中移动元素,但永远不会直接添加或删除元素。迭代器可以完成向容器添加元素的效果,但宣发自身永远不会做这样的操作。

1.find

例:auto result=find(vec.cbegin(),vec.end(),val)//返回第一个等于给定值的元素的迭代器,若没有则返回第二个参数来表示搜索失败

2.accumulate,求和

例:int sum=accumulate(vec.cbegin(),vec.cend(),0)//第三个参数是和的初值

3.fill

fill(vec.begin(),vec.end(),0)//fill将指定范围的元素替换为第三个参数的值

4.copy

接受三个迭代器,前两个表示一个输入范围,第三个表示目的序列的起始位置,目的序列至少要包含与输入序列一样多的元素

auto ret= copy(c1.bengin(),c2.end(),iter)//返回一个迭代器,迭代器指向最后一个插入的元素的后面的位置

5.sort 重排

扫描二维码关注公众号,回复: 11085251 查看本文章
1 sort(vec.begin(),vec.end());//利用元素的<运算符进行排序
2 
3 auto end_unique=unique(vec.begin(),vec.end());//重排输入范围的元素,使得每个单词只出现一次排列在范围的前部,返回指向不重复区域的后面一个位置的迭代器
4 
5 vec.erase(end_unique,vec.end());//利用erase删除掉重复的元素

猜你喜欢

转载自www.cnblogs.com/cs0915/p/12716851.html