copy算法
功能
将容器内指定范围的元素拷贝到另一容器中
void test()
{
vector<int>v;
for (int i = 0; i < 10;i++)
{
v.push_back(i);
}
vector<int>v2;
v2.resize(v.size());
copy(v.begin(), v.end(), v2.begin());
copy(v2.begin(), v2.end(), ostream_iterator<int>(cout, " "));
cout << endl;
}
replace算法
功能:
将容器内指定范围的旧元素修改为新元素
replace_if算法
将容器内指定范围满足条件的元素替换为新元素
class MyReplace
{
public:
bool operator()(int val)
{
return val > 3;
}
};
void test()
{
vector<int>v;
for (int i = 0; i < 10; i++)
{
v.push_back(i);
}
replace(v.begin(), v.end(), 3, 3000);
copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
cout << endl;
replace_if(v.begin(), v.end(), MyReplace(), 30000);
copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
cout << endl;
}
swap算法
功能:
互换两个容器的元素
void test()
{
vector<int>v;
for (int i = 0; i < 10; i++)
{
v.push_back(i);
}
vector<int>v2(10, 100);
cout << "容器互换前:" << endl;
copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
cout << endl;
for_each(v2.begin(), v2.end(), [](int val){cout << val << " "; });
cout << endl;
swap(v, v2);
cout << "容器互换后:" << endl;
copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
cout << endl;
for_each(v2.begin(), v2.end(), [](int val){cout << val << " "; });
cout << endl;
}