C++STL实验之 vector容器的应用

本文通过C++编程实践,详细介绍了如何使用vector实现学生信息的增删改查和显示,展示了vector的动态增长原理,以及如何在Manage类中运用这些操作。实验结果显示,程序成功处理了大规模数据,但对性能进行了初步评估,提示在大数据量下可能存在优化空间。
摘要由CSDN通过智能技术生成

实验目的:

1.了解vector的动态增长原理

2.熟练掌握vector的基本操作

实验器材:

C++

实验内容:

使用 vector实现学生信息的增、删、改、查及显示

实验步骤:

#include<iostream>

#include<vector>

using namespace std;

//小型学生管理系统

class Stu

{

    string sno;

    string name;

    int age;

public:

    Stu(string s,string n,int a)

    {

        sno=s;name=n;age=a;

    }

    string getno(){return sno;}

    void disp(){cout<<sno<<" "<<name<<" "<<age<<endl;}

    void setage(int a){age=a;}

};

class Manage

{

    vector<Stu> v;     //Stu s[3]

public:

    //增加

    void add(Stu s) {v.push_back(s);}

    //删除

    void del(string no)

    {

        vector<Stu>::iterator i=find(no);

        v.erase(i);

    }

    //修改

    void modify(string no,int age)

    {

        vector<Stu>::iterator i=find(no);

        i->setage(age);

    }

    //查询

    vector<Stu>::iterator find(string no)

    {

        vector<Stu>::iterator i=v.begin();

        for(;i!=v.end();i++)

            if((*i).getno()==no)

            {

                i->disp(); break;

            }

            if(i!=v.end()) return i;

            else

                cout<<"查无此人"<<endl;

    }

    //显示

    void show()

    {

        vector<Stu>::iterator i=v.begin();

        for(;i!=v.end();i++)

            (*i).disp();//i->disp();

    }

};

int main()

{

    Stu s1("001","张",20);

    Stu s2("002","李",25);

    Stu s3("003","王",19);

    Manage m;

    //增加

    m.add(s1); m.add(s2); m.add(s3);

    //显示

    m.show();

    //查询

    cout<<"查询结果为:";

    m.find("002");

    //删除

    cout<<"要删除的学生是:";

    m.del("002");

    cout<<"剩余的学生是:"<<endl;

    m.show();

    //修改

    cout<<"要修改的学生是:"<<endl;

    m.modify("003",22);

    cout<<"修改后的学生是:"<<endl;

    m.show();

    return 0;

}

实验结果(附数据和图表):

实验结果分析及结论:

实验成功,成功的用vector完成了学生信息的增、删、改、查及显示。

在Manage类中,add函数通过push_back来进行数据添加,del函数中,通过erase进行数据删除,查询通过遍历查找对应的数据。

实验成功的方面: 你可以具体说明实验中哪些方面是成功的,比如在使用 vector 容器实现学生信息管理时,成功地完成了增、删、改、查及显示等操作。可以指出程序的运行是否稳定、功能是否正常。

对 vector 容器的动态增长原理的理解: 提及在实验中对 vector 容器动态增长原理的理解,说明 vector 在空间不够用时的重新申请和数据迁移的过程,这有助于展示对容器内部机制的理解。

性能评估: 如果可能的话,你可以考虑对程序的性能进行评估,例如在大数据量的情况下程序是否仍然运行良好,是否存在潜在的性能瓶颈,以及如何改进程序性能。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LucianaiB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值