STL常用算法
2017-11-05 20:09
169 查看
1、常用的查找算法
adjacent_find()
在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。否则返回past-the-end。binary_search
在有序序列中查找value,找到则返回true。注意:在无序序列中,不可使用。count()
利用等于操作符,把标志范围内的元素与输入值比较,返回相等的个数。count_if()
假设vector<int> vecIntA,vecIntA包含1,3,5,7,9元素find()
² find: 利用底层元素的等于操作符,对指定范围内的元素与输入值进行比较。当匹配时,结束搜索,返回该元素的迭代器。² equal_range: 返回一对iterator,第一个表示lower_bound,第二个表示upper_bound。
find_if()
find_if: 使用输入的函数代替等于操作符执行find。返回被找到的元素的迭代器。假设vector<int> vecIntA,vecIntA包含1,3,5,3,9元素
vector<int>::it = find_if(vecInt.begin(),vecInt.end(),GreaterThree);
此时 *it==3, *(it+1)==5, *(it+2)==3, *(it+3)==9
2、常用的排序算法
merge()
² 以下是排序和通用算法:提供元素排序策略² merge: 合并两个有序序列,存放到另一个序列。
sort()
² sort: 以默认升序的方式重新排列指定范围内的元素。若要改排序规则,可以输入比较函数。random_shuffle()
² random_shuffle: 对指定范围内的元素随机调整次序。srand(time(0)); //设置随机种子
reverse()
3、常用的拷贝和替换算法
copy()
replace()
² replace(beg,end,oldValue,newValue): 将指定范围内的所有等于oldValue的元素替换成newValue。replace_if()
² replace_if : 将指定范围内所有操作结果为true的元素用新值替换。用法举例:
replace_if(vecIntA.begin(),vecIntA.end(),GreaterThree,newVal)
其中vecIntA是用vector<int>声明的容器
GreaterThree 函数的原型是 boolGreaterThree(int iNum)
swap()
² swap: 交换两个容器的元素4、常用的算术和生成算法
accumulate()
² accumulate: 对指定范围内的元素求和,然后结果再加上一个由val指定的初始值。² #include<numeric>
fill()
² fill: 将输入值赋给标志范围内的所有元素。5、常用的集合算法
set_union(),set_intersection(),set_difference()
² set_union: 构造一个有序序列,包含两个有序序列的并集。² set_intersection: 构造一个有序序列,包含两个有序序列的交集。
² set_difference: 构造一个有序序列,该序列保留第一个有序序列中存在而第二个有序序列中不存在的元素。
6、常用的遍历算法
for_each()
² for_each: 用指定函数依次对指定范围内所有元素进行迭代访问。该函数不得修改序列中的元素。transform()
² transform: 与for_each类似,遍历所有元素,但可对容器的元素进行修改相关文章推荐
- 常用STL容器及算法举例
- STL常用算法
- STL常用遍历算法for_each和transform的比较
- STL源码剖析 [SGI常用算法](stl_algobase.h)
- stl常用算法_集合运算
- STL常用遍历算法for_each和transform的比较
- C++ STL常用算法与容器
- STL常用算法的实现----小话STL(1)
- STL常用算法之排序、集合
- STL常用算法(转载)
- STL一些常用的容器和算法--总结
- STL常用算法: fill,rotate,rotate_copy.
- C++编程必备神器STL——常用算法
- STL 常用算法
- 常用STL容器及算法举例 .
- C++ STL 常用算法
- stl常用算法_查找相关
- stl常用算法_算法和生成
- 算法竞赛中常用的C++ STL
- STL常用算法