封装一个学生的类,定义一个学生这样类的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;
}
思维导图