前言
本文介绍了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是一样的




















