实验目的: 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 在空间不够用时的重新申请和数据迁移的过程,这有助于展示对容器内部机制的理解。 性能评估: 如果可能的话,你可以考虑对程序的性能进行评估,例如在大数据量的情况下程序是否仍然运行良好,是否存在潜在的性能瓶颈,以及如何改进程序性能。 |
C++STL实验之 vector容器的应用
最新推荐文章于 2024-08-09 10:25:03 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)