STL中的算法由头文件algorithm functional numeric这3个文件组成。
STL算法分为质变算法和非质变算法
我们将在剩下的blog中讲述STL中常用的一些算法,包括:遍历,查找,排序,拷贝,替换,算术生成,集合算法等内容。
本节主要讲述STL中常用的遍历算法。
for_each
我们之前讲述函数对象的时候使用过该函数。这里提出需求如下:
定义一个数据类型为int的数组,定义一个函数对象打印int类型数据,使用for_each函数打印数组中所有的元素。并记录函数对象调用次数。transform
transform的参数如下:transform(第一个容器的begin,第一个容器的end,第二个容器的begin,一元函数对象作用于第一个容器将结果返回到第二个容器)
或:
transform(第一个容器的begin,第一个容器的end,第二个容器的begin,第三个容器的begin,二元函数对象作用于第一个容器和第二个容器将结果返回到第三个容器)注意:使用该函数的时候v1,v2已经有数据了但是v3往往没有数据,我们需要使用resize函数先给v3开辟一块存储空间。这样才能正确使用transform。