15.2.2重学C++之【vector容器存放自定义数据类型】

#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
#include<vector>
#include<algorithm>


/*
    2.5.2 vector容器存放自定义数据类型
*/


class People
{
public:
    string name;
    int age;

    People(string _name, int _age)
    {
        this->name = _name;
        this->age = _age;
    }
};


void test1()
{
    vector<People> v;

    People p1("tom", 22);
    People p2("amay", 18);
    People p3("sam", 9);

    v.push_back(p1);
    v.push_back(p2);
    v.push_back(p3);

    for(vector<People>::iterator it=v.begin(); it!=v.end(); it++)
    {
        cout << "name:" << (*it).name << " age:" << (*it).age << endl;
        //技巧:此处解引用*it的数据类型结果==vector<XXX>中的XXX
        cout << "name:" << it->name << " age:" << it->age << endl; //效果同上
    }
}


void test2() //存放自定义数据类型-指针
{
    vector<People*> v;

    People p1("tom", 22);
    People p2("amay", 18);
    People p3("sam", 9);

    v.push_back(&p1); //保存数据地址
    v.push_back(&p2);
    v.push_back(&p3);

    for(vector<People*>::iterator it=v.begin(); it!=v.end(); it++)
    {
        cout << "name:" << (*it)->name << " age:" << (*it)->age << endl;
    }
}


int main()
{
    test1();
    test2();

    system("pause");
    return 0;
}

posted @   yub4by  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示