class Pr
{
public:
void operator()(int val)
{
cout << val << " " ;
}
};
void test01()
{
vector<int>v1;
v1.push_back(1);
v1.push_back(2);
v1.push_back(3);
v1.push_back(4);
vector<int>v2;
v2.resize(v1.size());
copy(v1.begin(), v1.end(), v2.begin());
for_each(v1.begin(), v1.end(), Pr());
cout << endl;//4 3 2 1
}
class Pr
{
public:
void operator()(int val)
{
cout << val << " " ;
}
};
void test01()
{
vector<int>v1;
v1.push_back(1);
v1.push_back(2);
v1.push_back(2);
v1.push_back(4);
cout << "替换前:" << endl;
for_each(v1.begin(), v1.end(), Pr());
cout << endl;//1 2 2 4
//将所有的2替换成5
replace(v1.begin(), v1.end(), 2, 5);
cout << "替换后:" << endl;
for_each(v1.begin(), v1.end(), Pr());
cout << endl;//1 5 5 4
}
注意:满足条件的都会被替换
class Person
{
public:
Person(string name, int age)
{
this->m_name = name;
this->m_age = age;
}
string m_name;
int m_age;
};
class Greater
{
public:
bool operator()(int val1)
{
return val1 > 1;
}
};
class Pr
{
public:
void operator()(int val)
{
cout << val << " " ;
}
};
void test01()
{
vector<int>v1;
v1.push_back(1);
v1.push_back(2);
v1.push_back(2);
v1.push_back(4);
cout << "替换前:" << endl;
for_each(v1.begin(), v1.end(), Pr());
cout << endl;//1 2 2 4
//将所有大于1的替换成5
replace_if(v1.begin(), v1.end(), Greater(), 5);
cout << "替换后:" << endl;
for_each(v1.begin(), v1.end(), Pr());
cout << endl;//1 5 5 5
}
class Pr
{
public:
void operator()(int val)
{
cout << val << " " ;
}
};
void test01()
{
vector<int>v1;
v1.push_back(1);
v1.push_back(2);
v1.push_back(2);
v1.push_back(4);
vector<int>v2;
v2.push_back(7);
v2.push_back(8);
v2.push_back(9);
v2.push_back(9);
cout << "交换前:" << endl;
for_each(v1.begin(), v1.end(), Pr());
cout << endl;
for_each(v2.begin(), v2.end(), Pr());
cout << endl;
//交换
v1.swap(v2);
cout << "交换后:" << endl;
for_each(v1.begin(), v1.end(), Pr());
cout << endl;
for_each(v2.begin(), v2.end(), Pr());
cout << endl;
}