#include <iostream>
#include <vector>
#include "algorithm"
#include "functional"
using namespace std;
/*
* 常用遍历算法
*/
void print1(int v) {
cout << v << " ";
}
class Print2 {
public:
void operator()(int v) {
cout << v << " ";
}
};
void test() {
vector<int> v;
for (int i = 0; i < 10; i++) {
v.push_back(i);
}
for_each(v.begin(), v.end(), print1);
cout << endl;
for_each(v.begin(), v.end(), Print2());
cout << endl;
}
class MyTransform {
public:
int operator()(int v) {
return v;
}
};
class MyTransform2 {
public:
int operator()(int v) {
return v * 2;
}
};
//transform
void test2() {
vector<int> v;
for (int i = 0; i < 10; i++) {
v.push_back(i);
}
vector<int> v2;
v2.resize(v.size());//目标容器必须要提前开辟空间
transform(v.begin(), v.end(), v2.begin(), MyTransform());
for_each(v2.begin(), v2.end(), Print2());
cout << endl;
vector<int> v3;
v3.resize(v.size());//目标容器必须要提前开辟空间
transform(v.begin(), v.end(), v3.begin(), MyTransform2());
for_each(v3.begin(), v3.end(), Print2());
}
int main() {
test();
cout << endl;
test2();
return 0;
}
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
0 2 4 6 8 10 12 14 16 18
#include <iostream>
#include <vector>
#include "algorithm"
#include "functional"
using namespace std;
/*
* 常用遍历算法
*/
class Print {
public:
void operator()(int v) {
cout << v << " ";
}
};
void test() {
vector<int> v;
for (int i = 0; i < 10; i++) {
v.push_back(i);
}
vector<int> v2;
for (int i = 10; i > 0; i--) {
v2.push_back(i);
}
vector<int> v3;
v3.resize(v.size() + v2.size());
merge(v.begin(), v.end(), v2.begin(), v2.end(), v3.begin());
for_each(v3.begin(), v3.end(), Print());
}
int main() {
test();
return 0;
}
0 1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1