c++提高编程 5 STL-常用算法

时间:2021-06-24 17:48:14   收藏:0   阅读:0

概念:

算法主要由头文件  <algorithm> <functional> <numeric>组成

<algorithm>是所有STL头文件中最大的一个,范围涉及到比较/交换/查找/遍历/赋值/修改等

<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数

<functional>定义了一些模板类,用以声明函数对象

5.1常用遍历算法

for_each//遍历容器

transform//搬运容器到另一个容器

5.2常用查找算法

find//查找元素 返回迭代器    失败返回  end()

fin_if//按条件查找元素 返回迭代器

adjacent_find//查找相邻重复元素

binary_search//二分查找法  返回bool

count//统计元素个数

count_if//按条件统计个数

5.3常用排序算法

sort()   //对容器内元素进行排序

random_shuffle//洗牌 指定范围内的元素随即调整次序

merge     //两个容器有序元素合并,并存储到另一容器中  ,依然有序

reverse//反转指定范围的元素

5.4常用拷贝和替换算法

copy(v1.begin()  ,  v1.end()  ,  v2,begin()  )//容器内指定范围内元素拷贝到另一容器中

replace(v.begin() , v.end() , value1 , value2)//将容器内指定范围的旧元素修改为新元素

replace_if(v.begin() , v.end() ,自定义仿函数 , value)

//容器内指定范围满足条件的元素修改为指定元素

swap(v1 , v2 )//互换两个容器的元素

5.5常用算术生成算法

需包含头文件#include<numeric>

accumulate(v.begin() , v.end() ,  value)    //计算容器中元素之和 value为初始值

fill(v.begin() , v.end() , value)                   //像容器中添加元素 将value放入

5.6常用集合算法

set_intersection(v1.begin() , v1.end() , v2.begin() , v2.end() , v3.begin) //求两个容器的交集

set_union           //求两个容器的并集

set_difference   //求两个容器的差集

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!