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

Posted 白米a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++提高编程 5 STL-常用算法相关的知识,希望对你有一定的参考价值。

概念:

算法主要由头文件  <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   //求两个容器的差集

以上是关于c++提高编程 5 STL-常用算法的主要内容,如果未能解决你的问题,请参考以下文章

C++中STL常用算法

C++提高编程STL 初识

STL 常用方法

C++提高编程STL-stack&queue 容器

[C++ STL] 常用算法总结

C++ STL 常用算法总结