搬运函数:也就是可以把原容器中的数据搬运到目标容器中
函数原型:
transform(iterator beg1,iterator end1,iterator beg2,_func)
iterator beg1:为源容器开始迭代器
iterator end1:为源容器结束迭代器
iterator beg2:为目标容器开始迭代器
_func():函数或函数对象
#include <iostream> #include <algorithm> #include <vector> using namespace std; //函数对象 class print { public: void operator()(int val) //仿函数 { cout<<val<<" "; } }; class m_transform { public: int operator()(int val) //要有返回值,返回类型应当为对应容器中类型 { return val+100; //里面也可以进行一些数的操作 } }; //常用遍历算法 int main() { vector<int> v; for(int i=0;i<10;i++) v.push_back(i); vector<int> v2; //使用transform()之前要分配空间 v2.resize(v.size()); //这里就分配v容器的空间 transform(v.begin(),v.end(),v2.begin(),m_transform()); //也应当有括号,因为是仿函数 for_each(v2.begin(),v2.end(),print()); //遍历 return 0; }
注意:
1.在搬运前应当为目标容器分配空间,用resize()
2.因为写的是仿函数,应在里面加上()