STL常用算法

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类似,遍历所有元素,但可对容器的元素进行修改


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值