常用的遍历算法
一、常用的遍历算法
1、for_each
2、transform
transform(b1,e1,b2,op) //把一个区间[b1,e1)内的数据经过(op)转化,放入以b2开头的第二个容器内
//也就是复制+修改(变换),当然b2可以等于b1
transform(b1,e1,b2,b3,op) //把两个集合里的数据整合(op)到第三个集合,当然b3=b2=b1也可以
注意:
1、如果目标与源相同,transform()就和for_each()一样;
2、如果想以某值替换符合规则的元素,应使用replace()算法。
二、案例
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <vector> #include <algorithm> using namespace std; //transform 将一个容器的元素 搬运到 另一个容器中 struct MyPlus { int operator()(int val) { return val + 100; } }; void MyPrint(int val) { cout << val << " "; } void test01() { vector<int> v1; vector<int> v2; for (int i = 0;i < 10;i++) { v1.push_back(i); } v2.resize(v1.size());//开辟空间 transform(v1.begin(), v1.end(), v2.begin(), MyPlus()); for_each(v2.begin(), v2.end(), MyPrint);//100 101 102 103 104 105 106 107 108 109 cout << endl; } int main(void) { test01(); return 0; }