C++高级_STL常用的遍历算法详解

常用的遍历算法:

for_each();

transform(); (transform是变换的意思)

for_each(beg, end, func);

用指定函数一次对指定范围内元素进行迭代访问

该函数不能修改序列中得元素

(注意:for_each 的第三个参数, 函数对象做返回值)

transform()函数

transform(inbegin1,inend1,outbegin2,op);

transform(inbegin1,inend1.inbegin2,outbegin3,op);

用指定函数依次对指定范围内元素进行迭代访问

该函数可以修改序列中的元素

将一个容器中得元素,通过op (此时op是一元函数对象),变换到另一个容器中(同一个容器中也可以)

类属行transform的作用是,将某个函数作用到某一个区间内的每一个元素上,并将该函数所返回的结构保存到另一个区间中。

3

将来两个容器的元素,通过op(此时的op是二元函数对象),变换到另一个容器中(同一个容器中也可以)

 

5

注意:

如果目标与源相同,tansforn() 就和 for_each()一样了;

如果想以某值替换符合规则的元素,应使用replace()的算法

for_each() 和 transform() 算法比较

for_each()      速度快            不灵活

transform()    速度慢            非常灵活

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注