C++基础(15)——STL常用算法(遍历和查找)

前言

本文介绍了C++中STL常用遍历和查找算法。

9.1:常用遍历算法(for_each、transform)

9.1.1:foreach

for_each:遍历容器,transform:搬运一个容器中的数据到另一个容器中

for_each中使用普通函数只用传函数名,如果用自定义的仿函数那就要传一个匿名的函数对象

for_each函数原型

9.1.2:transform

transform中比较需要注意的是第4个参数,目标容器要提前指定好空间要不然会塞不进去

 transfrom的函数原型

对匿名对象的一些疑问,在main函数中调用MyFunc()会创建一个对象,会调用类的无参构造函数和析构函数

9.2:常见查找算法(find、find_if、adjacent_find、binary_search、count、count_if)

9.2.1:find

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

查找系统自带的数据类型

查找自定义数据类型

9.2.2:find_if

函数原型

使用find_if的时候要对()运算符进行重载,且返回值要是bool类型的,return 的条件在operator()中实现。与find不同的是,find要对==运算符进行重载,而find_if需要的是谓词

find_if查找系统在带数据类型

find_if查找自定义数据

9.2.3:adjacent_find

用于查找相邻重复的元素

9.2.4:binary_search

二分法查找要先让数据有序,可以配合sort函数一起使用,无序序列不可以使用。

9.2.5:count

返回值是出现的数据次数

统计系统自定义数据类型

统计自定义数据类型,也是差不多的操作,重写==运算符

9.2.6:count_if

用法和find_if是一样的

总结

以上是本文的全部内容,非常感谢你能看到这。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

门牙会稍息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值