作业
封装一个学生的类,定义一个学生这样类的vector容器, 里面存放学生对象(至少3个)
再把该容器中的对象,保存到文件中。
再把这些学生从文件中读取出来,放入另一个容器中并且遍历输出该容器里的学生。
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;class Stu
{friend ifstream & operator>>(ifstream &cin,Stu &s);friend ofstream & operator<<(ofstream &cout,Stu &s);friend ostream & operator<<(ostream &cout,Stu &s);
private:string name;int age;
public:Stu(){}Stu(string n,int a):name(n),age(a){}
};ostream & operator<<(ostream &cout,Stu &s)
{cout << s.name;cout << s.age << endl;return cout;
}
ofstream & operator<<(ofstream &cout,Stu &s)
{cout << s.name << "\t" << s.age << endl;return cout;
}
ifstream & operator>>(ifstream &cin,Stu &s)
{cin >> s.name;cin >> s.age;return cin;
}
int main()
{
// ofstream ofs;
// ofs.open("E:/CFHD/1.txt",ios::out);
// vector<Stu> v;
// Stu a("zhangsan",18);
// Stu b("lisi",20);
// Stu c("wangwu",22);
// v.push_back(a);
// v.push_back(b);
// v.push_back(c);
// for(int i = 0;i<3;i++)
// {
// ofs << v.at(i);
// }
// ofs.close();ifstream ifs;ifs.open("E:/CFHD/1.txt",ios::in);vector<Stu> v;vector<Stu>::iterator iter;Stu s;int i = 0;while(ifs >> s){iter = v.begin()+i;v.push_back(s);i++;}for(iter = v.begin();iter != v.end();iter++){cout << *iter ;}ifs.close();return 0;
}
把list的相关函数都实现出来
#include <iostream>
#include <list>
using namespace std;void P(list<int> &l)
{list<int>::iterator iter;for(iter = l.begin();iter != l.end();iter++){cout << *iter << " ";}cout << endl;
}
int main()
{list<int> lst1;for(int i = 0;i<5;i++){lst1.push_back(i);}P(lst1);list<int> lst2(lst1.begin(),lst1.end());P(lst2);list<int> lst3(3,8);P(lst3);list<int> lst4;lst4.assign(lst1.begin(),lst1.end());P(lst4);cout<<"front = "<<lst2.front()<<endl;cout<<"back = "<<lst2.back()<<endl;if(!lst1.empty()){cout << "sz= " << lst1.size() << endl;lst1.resize(15,2);cout << "sz= " << lst1.size() << endl;P(lst1);}lst1.erase(lst1.begin(),lst1.end());P(lst1);cout << "sz= " << lst1.size() << endl;return 0;
}
思维导图