Vector中存放自定義資料型別

Ricky001發表於2024-12-10

學習目標:vector中存放自定義資料型別,並列印輸出

示例:

#include <iostream>
using namespace std;
#include <string>
#include <vector>
#include <algorithm> //標準演算法的標頭檔案

//vector容器中存放自定義資料型別
class Person
{
public:
    Person(string name,int age)
    {
        this->m_Name=name;
        this->m_Age=age;
    }
    string m_Name;
    int m_Age;
};
void test01()
{
    vector<Person> v;

    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++)
    {
        cout<<"姓名:"<<(*it).m_Name<<"年齡:"<<(*it).m_Age<<endl;
        //cout<<"姓名:"<<it.m_Name<<"年齡:"<<it.m_Age<<endl;
    }
    
}

//存放自定義資料型別 指標
void test02()
{
    vector<Person*> v;

    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++)
    {
        cout<<"姓名:"<<(*it)->m_Name<<"年齡:"<<(*it)->m_Age<<endl;
        
    }
}
int main() 
{
    test01();
    test02();
    return 0;
}

相關文章