#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
#include <numeric>
using namespace std;
void test01() {
vector<int>vector1;
for (int i = 0; i < 10; i++) {
vector1.push_back(i);
}
vector<int>vectorCopy;
vectorCopy.resize(vector1.size());
copy(vector1.begin(), vector1.end(), vectorCopy.begin());
for_each(vectorCopy.begin(), vectorCopy.end(), [](int value) {cout << value << endl; });
}
class MyCompare {
public:
bool operator()(int value) {
return value > 3;
}
};
void test02() {
vector<int>vector1;
for (int i = 0; i < 10; i++) {
vector1.push_back(i);
}
for_each(vector1.begin(), vector1.end(), [](int value) {cout << value << endl; });
cout << "-----------------------------" << endl;
replace(vector1.begin(), vector1.end(), 3, 300); // 把容器中的 3 替换成 300;
for_each(vector1.begin(), vector1.end(), [](int value) {cout << value << endl; });
replace_if(vector1.begin(), vector1.end(), MyCompare(), 3000); // 将大于 3 的元素替换成 3000;
copy(vector1.begin(), vector1.end(), ostream_iterator<int>(cout, " "));
}
void test03() {
vector<int>vector1;
for (int i = 0; i < 10; i++) {
vector1.push_back(i);
}
vector<int>vector2;
vector2.push_back(10);
vector2.push_back(30);
vector2.push_back(20);
vector2.push_back(40);
for_each(vector1.begin(), vector1.end(), [](int value) {cout << value << endl; });
for_each(vector2.begin(), vector2.end(), [](int value) {cout << value << endl; });
cout << "------------------------" << endl;
swap(vector1, vector2);
for_each(vector1.begin(), vector1.end(), [](int value) {cout << value << endl; });
for_each(vector2.begin(), vector2.end(), [](int value) {cout << value << endl; });
}
void test04() {
vector<int>vector1;
for (int i = 0; i <= 100; i++) {
vector1.push_back(i);
}
int sum = accumulate(vector1.begin(), vector1.end(), 0);
cout << "sum: " << sum << endl;
}
void test05() {
vector<int>vector1;
vector1.resize(10);
fill(vector1.begin(), vector1.end(), 1000); // 用元素 1000 来填充容器;
copy(vector1.begin(), vector1.end(), ostream_iterator<int>(cout, " "));
}
int main() {
//test01();
//test02();
//test03();
//test04();
test05();
return EXIT_SUCCESS;
}