C++:Vector 容器 自定义数据类型输入
运行打印效果图
运行代码
//Vector 存放自定义数据类型
#include<iostream>
#include<cstring>
using namespace std;
#include<vector>
#include<algorithm>
class Person
{
public:
Person(string name,int age)
{
mName = name;
mAge = age;
}
friend ostream& operator <<(ostream& output, Person& p)
{
//输出流要用引用本身
output << "姓名为:" << p.mName<<'\t'
<< "年龄为:" << p.mAge << endl;
return output;
}
private:
string mName;
int mAge;
};
void myPrint(Person p)
{
cout << p;
}
void test02()
{
vector<Person> v; //定义容器
Person p1("梁一", 19);
Person p2("陈二", 29);
Person p3("张三", 39);
Person p4("李四", 49);
Person p5("王五", 59);
v.push_back(p1); // 尾插函数
v.push_back(p2);
v.push_back(p3);
v.push_back(p4);
v.push_back(p5);
for_each(v.begin(), v.end(), myPrint);
}
void myPrint1(Person* p) //参数为指针
{
cout << *p; //输出指针的内容
}
//容器存放自定义地址
void test03()
{
vector<Person*> v1; //定义容器
Person p1("梁一", 19);
Person p2("陈二", 29);
Person p3("张三", 39);
Person p4("李四", 49);
Person p5("王五", 59);
v1.push_back(&p1); // 尾插函数
v1.push_back(&p2);
v1.push_back(&p3);
v1.push_back(&p4);
v1.push_back(&p5);
for_each(v1.begin(), v1.end(), myPrint1);
}
int main()
{
test02();
test03();
}
总结
迭代器现阶段相当于 指针
使用算法一般都要使用迭代器 连接 容器