STL-常用算法

目录

5.1常用遍历算法

5.1.1 for_each

5.1.2 transform

5.2常用查找算法

5.2.1 find

5.2.2 find if

5.2.3 adjacent_find

5.2.4 binary_search

5.2.5 count

5.2.6 count_if

5.3常用排序算法

5.3.1 sort

5.3.2 random shuffle

5.3.3 merge

5.3.4 reverse

5.4常用拷贝和替换算法

5.4.1 copy

5.4.2 replace

5.4.3 replace_if

5.4.4 swap

5.5常用算术生成算法

5.5.1 accumulate

5.5.2 fill

5.6 常用集合算法

5.6.1 set intersection

5.6.2 set_union

5.6.3 set difference


 

概述:

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

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

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

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

5.1常用遍历算法

学习目标:

掌握常用的遍历算法

算法简介:

for_each //遍历容器

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

5.1.1 for_each

功能描述:

实现遍历容器

函数原型:

for_each(iterator beg, iterator end,_func);

//遍历算法 遍历容器元素

//beg开始迭代器

//end结束迭代器

//_func 函数或者函数对象

示例:

总结:for_each在实际开发中是最常用遍历算法,需要熟练掌握

5.1.2 transform

功能描述:

搬运容器到另一个容器中

函数原型:

transform(iterator beg1, iterator end1, iterator beg2,_func);

//beg1 源容器开始迭代器

//end1 源容器结束迭代器

//beg2 目标容器开始迭代器

//_func 函数或者函数对象

示例:

 2fe8ea80aa2791d31e123a9c714b499a.png

总结:搬运的目标容器必须要提前开辟空间,否则无法正常搬运

5.2常用查找算法

学习目标:

掌握常用的查找算法

算法简介:

find //查找元素

find_if //按条件查找元素

adjacent_find //查找相邻重复元素

binary_search //二分查找法

count //统计元素个数

count if //按条件统计元素个数

5.2.1 find

功能描述:

查找指定元素,找到返回指定元素的迭代器,找不到返回结束迭代器end()

函数原型:

find(iterator beg, iterator end, value);

// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置

//beg开始迭代器

//end 结束迭代器

//value 查找的元素

示例:

 75b6d36cf3a27b249a02ae5f3c819bc8.png

总结:利用find可以在容器中找指定的元素,返回值是迭代器

5.2.2 find if

功能描述:

按条件查找元素

函数原型:

find if(iterator beg, iterator end,_Pred);

// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置

//beg开始迭代器

//end结束迭代器

//_Pred函数或者谓词(返回bool类型的仿函数)

示例:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值