内容:vector中存放自定义数据类型及指针。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Person
{
public:
string m_Name;
int m_Age;
public:
Person() {}
Person(string name, int age) : m_Name(name), m_Age(age) {}
};
void test01()
{
vector<Person> v; // vector中存放 自定义数据类型
Person p1("aaa", 10);
Person p2("bbb", 20);
Person p3("ccc", 30);
Person p4("ddd", 40);
Person p5("eee", 50);
v.push_back(p1);
v.push_back(p2);
v.push_back(p3);
v.push_back(p4);
v.push_back(p5);
for (vector<Person>::iterator it = v.begin(); it != v.end(); it++)
{
/*
it本身类似于指针,故可以直接 it-> 来访问数据,
也可以通过 (*it). 等价于 Person. 来访问数据,
故以下两种方式均可输出数据
*/
cout << "姓名:" << it->m_Name << " 年龄:" << it->m_Age << endl;
// cout << "姓名:" << (*it).m_Name << " 年龄:" << (*it).m_Age << endl;
}
}
int main()
{
test01();
return 0;
}
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Person
{
public:
string m_Name;
int m_Age;
public:
Person() {}
Person(string name, int age) : m_Name(name), m_Age(age) {}
};
void test01()
{
vector<Person *> v; // vector中存放 自定义数据类型的指针
Person p1("aaa", 10);
Person p2("bbb", 20);
Person p3("ccc", 30);
Person p4("ddd", 40);
Person p5("eee", 50);
v.push_back(&p1);
v.push_back(&p2);
v.push_back(&p3);
v.push_back(&p4);
v.push_back(&p5);
for (vector<Person *>::iterator it = v.begin(); it != v.end(); it++)
{
// (*it) 等价于 Person * 的数据类型,故需要通过 -> 来访问
cout << "姓名:" << (*it)->m_Name << " 年龄:" << (*it)->m_Age << endl;
}
}
int main()
{
test01();
return 0;
}