for_each
for_each(iterator beg, iterator end, _func);
title:Important
最常用的遍历算法
#include <iostream>
#include <vector>
using namespace std;
class print03
{
public:
void operator()(int val)
{
cout << val << " ";
}
};
void print(vector<int>& v)
{
for(vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
void print02(int val)
{
cout << val << " ";
}
int main()
{
vector<int>v1;
for(int i = 0; i < 10; i++)
{
v1.push_back(i);
}
print(v1);
for_each(v1.begin(), v1.end(), print02);
cout << endl;
for_each(v1.begin(), v1.end(), print03());
cout << endl;
return 0;
}
/*output:
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
*/
transform(iterator beg1, iterator end1, iterator end2, _func);
#include <iostream>
#include <vector>
#include <algotrithm>
using namespace std;
class Transform
{
public:
int operator()(int val)
{
return v;
}
};
void print(vector<int>& v)
{
for(vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
class print03
{
public:
void operator()(int val)
{
cout << val << " ";
}
};
int main()
{
vector<int>v1;
for(int i = 0; i < 10; i++)
{
v1.push_back(i);
}
print(v1);
vector<int>v_target;
v_target.reize(v1.size());
transform(v1.begin(), v1.end(), v_target.begin(), Transform());
for_each(v_target.begin(), v_target.end(), print03());
return 0;
}
/*output:
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
*/