for_each的使用
作者:
小小蒟蒻
,
2022-08-06 05:43:34
,
所有人可见
,
阅读 165
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class Person {
public:
int m_Age;
string m_Name;
public:
explicit Person() {
m_Age = 0;
m_Name = "";
};
explicit Person(int age, const string& name) {
m_Age = age;
m_Name = name;
};
~Person() {
};
void show() {
cout << " age \t" << m_Age << " name \t" << m_Name << endl;
}
static void showPerson(Person p) {
p.show();
};
static void showPersonPtr(Person* p) {
p->show();
};
};
void Test1()
{
vector<Person*> vec;
vec.emplace_back(new Person(21, "Jim"));
vec.emplace_back(new Person(10, "Tom"));
vec.emplace_back(new Person(34, "kit"));
cout << "指针类型循环输出" << endl;
for_each(vec.begin(), vec.end(), Person::showPersonPtr);
for (auto i = vec.begin(); i != vec.end(); ++i)
if (*i) delete (*i);
vec.clear();
}
void Test2()
{
vector<Person> vec;
vec.emplace_back(std::move(Person(21, "Jim")));
vec.emplace_back(std::move(Person(10, "Tom")));
vec.emplace_back(std::move(Person(34, "kit")));
cout << "普通类型循环输出" << endl;
for_each(vec.begin(), vec.end(), Person::showPerson);
vec.clear();
}
int main()
{
Test1();
Test2();
return 0;
}