C++day8作业
封装一个学生的类,定义一个学生这样类的vector容器, 里面存放学生对象(至少3个)
再把该容器中的对象,保存到文件中。
再把这些学生从文件中读取出来,放入另一个容器中并且遍历输出该容器里的学生。
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;class Stu
{
private:string name;int age;int id;
public:Stu(){}Stu(string name,int age,int id):name(name),age(age),id(id){}string wri()const{return name + " " + to_string(age) + " " + to_string(id);}
};
int main()
{vector<Stu> stus;stus.push_back(Stu("张三",20,1001));stus.push_back(Stu("李四",21,1002));stus.push_back(Stu("王五",20,1003));ofstream ofs;try {ofs.open("D:/QT/QT/day8/aaa",ios::out);if(!ofs.is_open()){throw -1;}} catch (int &e) {if(e==-1){cout << "打开失败" << endl;}}for(auto &stu : stus){ofs << stu.wri() <<endl;}ofs.close();ifstream ifs;try {ifs.open("D:/QT/QT/day8/aaa",ios::in);if(!ifs.is_open()){throw -1;}} catch (int &c) {if(c==-1){cout << "打开失败" << endl;}}char buf[1024];while(ifs>>buf){cout << buf << endl;}ifs.close();return 0;
}
实现list的相关函数
#include <iostream>
#include <list>
using namespace std;void printfList(list<int> &lst)
{list<int>::iterator iter;for(iter = lst.begin(); iter != lst.end();iter++){cout << *iter << " ";}cout << endl;
}int main()
{list<int> lst;lst.push_back(10);lst.push_back(20);lst.push_back(30);lst.push_back(40);lst.push_back(50);printfList(lst);list<int> lst1;lst1=lst;printfList(lst1);list<int> lst2(lst1);printfList(lst2);list<int> lst3;lst3.assign(lst2.begin(),lst2.end());printfList(lst3);if(!lst.empty()){cout << "aaa" <<endl;cout << lst.size() << endl;}cout << "===============" <<endl;lst.resize(6,5);printfList(lst);cout << "===============" <<endl;printfList(lst1);lst1.pop_back();printfList(lst1);cout << "===============" <<endl;printfList(lst2);lst2.insert(lst2.begin(),90);printfList(lst2);cout << "===============" <<endl;printfList(lst3);lst3.clear();printfList(lst3);return 0;
}
思维导图