封装一个学生的类,定义一个学生这样类的vector容器,里面存放学生对象(至少3个)
再把该容器中的对象,保存到文件中。
再把这些学生从文件中读取出来,放入另一个容器中并且遍历输出该容器里的学生。
#include <iostream>
#include <vector>
#include <fstream>
#include <cstring>
using namespace std;
//字符串转整型
int stoi(char *buf)
{
int res = 0;
for(int i = 0;buf[i] != '\0';i++)
{
res = res*10+(buf[i] - '0');
}
return res;
}
//类 : 学生
class Stu
{
private:
string name;
int age;
public:
Stu(){}
Stu(string name,int age):name(name),age(age){}
string getname()
{
return name;
}
int getage()
{
return age;
}
};
int main()
{
Stu s1("zs",18);
Stu s2("ls",20);
Stu s3("ww",24);
//放入vector中
vector<Stu> stu;
stu.push_back(s1);
stu.push_back(s2);
stu.push_back(s3);
//以写的方式打开文件
ofstream ofs;
ofs.open("C:/Users/Administartor/Desktop/1.txt",ios::out);
//写入文件
vector<Stu>::iterator iter;
for(iter = stu.begin();iter != stu.end();iter++)
{
ofs << "name : " << iter->getname() << " age : " << iter->getage() << endl;
}
//关闭文件
ofs.close();
//以读的方式打开文件
ifstream ifs;
ifs.open("C:/Users/Administartor/Desktop/1.txt",ios::in);
char buf[128];
int i = 0;
string na;
int ag;
//读文件内容输入到另一个容器中
//创建新容器
vector<Stu> ostu;
//读取数据
while(1)
{
i++;
memset(buf,0,sizeof (buf));
if(ifs >> buf)
{
//cout << buf ;
if((i%3 == 0 )&&(i%6 != 0))
{
na = buf;
}
if(i%6 == 0)
{
ag = stoi(buf);
Stu s4(na,ag);
ostu.push_back(s4);
}
}
else
break;
}
//关闭文件
ifs.close();
//从新的vector中读取数据
for(iter = ostu.begin();iter != ostu.end();iter++)
{
cout << "name : " << iter->getname() << " age : " << iter->getage() << endl;
}
return 0;
}
1.把list的相关函数都实现出来。
#include <iostream>
#include <list>
using namespace std;
void show(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(11);
lst.push_front(22);
show(lst);
list<int> lst1(lst.begin(),lst.end());
show(lst1);
list<int> lst2(3,77);
show(lst2);
list<int> lst3(lst2);
show(lst3);
//赋值和交换
list<int> lst4;
lst4.assign(lst.begin(),lst.end());
show(lst4);
lst4.assign(4,44);
show(lst4);
lst4 = lst;
show(lst4);
lst4.swap(lst2);
show(lst2);
show(lst4);
//大小计算
if(lst2.empty());
else
{
cout << "lst_size : " << lst2.size() <<endl;
lst2.resize(3);
show(lst2);
cout << "lst_size : " << lst2.size() <<endl;
lst2.resize(5,99);
show(lst2);
cout << "lst_size : " << lst2.size() <<endl;
}
cout<< "---------------------" <<endl;
//插入删除
list<int> lst5;
lst5.push_back(11);
lst5.push_back(22);
show(lst5);
lst5.push_front(33);
show(lst5);
lst5.pop_back();
show(lst5);
lst5.pop_front();
show(lst5);
list<int>::iterator pos;
pos = lst5.begin();
lst5.insert(pos,44);
show(lst5);
lst5.insert(pos,3,7);
show(lst5);
lst5.insert(pos,lst.begin(),lst.end());
show(lst5);
lst5.erase(pos);
show(lst5);
lst5.remove(11);
show(lst5);
lst5.erase(pos,lst5.end());
show(lst5);
lst5.clear();
show(lst5);
return 0;
}