c++ 容器嵌套自定义数据类型容器
代码运行一遍应该就清楚了
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;
void myPrintInt(int val);
#if 0
void test01(void) {
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
v.push_back(50);
//1.0
vector<int>::iterator beginIt = v.begin();
vector<int>::iterator endIt = v.end();
for (; beginIt != endIt; beginIt++) {
cout << *beginIt<< " ";
}
cout << endl;
//2.0
for (vector<int>::iterator it = v.begin(); it != v.end();it++) {
cout << *it << " ";
}
cout << endl;
//3.0
for_each(v.begin(), v.end(), myPrintInt);
}
void myPrintInt(int val) {
cout << val << " ";
}
#endif
class Person {
friend void myPrintPerson(const Person& ob);
private:
string name;
int age;
public:
Person(string name, int age) {
this->age = age;
this->name = name;
}
};
void myPrintPerson(const Person& ob) {
cout << "name=" << ob.name << " " << "age=" << ob.age << endl;
}
void myPrintV(const vector<Person> &v) {
for_each(v.begin(), v.end(), myPrintPerson);
}
void test02(void) {
Person ob1("小明", 18);
Person ob2("小红", 19);
Person ob3("李华", 20);
//4.0
vector<Person> per1;
vector<Person> per2;
vector<Person> per3;
per1.push_back(ob1);
per2.push_back(ob2);
per3.push_back(ob3);
//for_each(per1.begin(), per1.end(), myPrintPerson);
//5.0
vector<vector<Person>> v;
v.push_back(per1);
v.push_back(per2);
v.push_back(per3);
for_each(v.begin(), v.end(), myPrintV);
}
int main(void) {
test02();
return 0;
}