关联式容器映射map练习
2017-01-01 16:22
309 查看
//管理学生名册
#include <iostream>
#include <map>
#include <string>
using namespace std;
struct student
{
string id;
string name;
int grade;
};
int main()
{
map<string,student> stubook;
student stu;
cout<<"--creat student book--"<<endl;
for(int i=0;i<2;i++)
{
cin>>stu.id;
cin>>stu.name;
cin>>stu.grade;
stubook[stu.id]=stu;
}
//判断student book是否为空
if(stubook.empty()) cout<<"stubook is empty!"<<endl;
else cout<<"stubook isnot empty!"<<stubook.size()<<endl;
//输出student book
cout<<"---print student book--"<<endl;
map<string,student>::iterator iter=stubook.begin();
for( ;iter!=stubook.end();iter++)
{
cout<<"student book:"<<iter->second.id<<" - "<<iter->second.name<<" -"<<iter->second.grade<<endl;
}
//查找学生
cout<<"---find a student(please input studentid)--"<<endl;
string studentid;
cin>>studentid;
iter=stubook.find(studentid);
if(iter==stubook.end())
{
cout<<"cannot find: "<<studentid<<endl;
}
else
{
cout<<"student: "<<iter->second.id<<" - "<<iter->second.name<<" - "<<iter->second.grade<<endl;
cout<<"do you want to delete the student (y/n):"<<endl;
char c;
cin>>c;
if(c=='y')
{
stubook.erase(studentid);
}
}
//输出student book
cout<<"---print student book--"<<endl;
map<string,student>::iterator iter2=stubook.begin();
for( ;iter2!=stubook.end();iter2++)
{
cout<<"student book:"<<iter2->second.id<<" - "<<iter2->second.name<<" -"<<iter2->second.grade<<endl;
}
return 0;
}
#include <iostream>
#include <map>
#include <string>
using namespace std;
struct student
{
string id;
string name;
int grade;
};
int main()
{
map<string,student> stubook;
student stu;
cout<<"--creat student book--"<<endl;
for(int i=0;i<2;i++)
{
cin>>stu.id;
cin>>stu.name;
cin>>stu.grade;
stubook[stu.id]=stu;
}
//判断student book是否为空
if(stubook.empty()) cout<<"stubook is empty!"<<endl;
else cout<<"stubook isnot empty!"<<stubook.size()<<endl;
//输出student book
cout<<"---print student book--"<<endl;
map<string,student>::iterator iter=stubook.begin();
for( ;iter!=stubook.end();iter++)
{
cout<<"student book:"<<iter->second.id<<" - "<<iter->second.name<<" -"<<iter->second.grade<<endl;
}
//查找学生
cout<<"---find a student(please input studentid)--"<<endl;
string studentid;
cin>>studentid;
iter=stubook.find(studentid);
if(iter==stubook.end())
{
cout<<"cannot find: "<<studentid<<endl;
}
else
{
cout<<"student: "<<iter->second.id<<" - "<<iter->second.name<<" - "<<iter->second.grade<<endl;
cout<<"do you want to delete the student (y/n):"<<endl;
char c;
cin>>c;
if(c=='y')
{
stubook.erase(studentid);
}
}
//输出student book
cout<<"---print student book--"<<endl;
map<string,student>::iterator iter2=stubook.begin();
for( ;iter2!=stubook.end();iter2++)
{
cout<<"student book:"<<iter2->second.id<<" - "<<iter2->second.name<<" -"<<iter2->second.grade<<endl;
}
return 0;
}
相关文章推荐
- linux下练习 c++ 关联式容器map特性
- STL关联式容器之映射表——map
- 【STL源码剖析读书笔记】【第5章】关联式容器之set、map、multiset和multimap
- (75)Map拓展练习:二层映射该如何取内层的值
- Java中具有映射关系的容器:数组和Map的区别
- map和multimap映射容器
- 【STL源码剖析读书笔记】【第5章】关联式容器之set、map、multiset和multimap
- 侯捷STL学习(九)--关联式容器(Rb_tree,set,map)
- 使用C++STL的map容器实现一种命令映射
- STL关联式容器之map和multimap
- STL容器-关联式容器map/multimap
- C++ STL学习之九:关联式容器map深入学习
- 统计公司员工喜欢吃的水果,并打印出最喜欢吃的前K中水果【map关联式容器,k/V结构】
- map——关联式容器
- map和multimap映射容器
- 【深度探索STL】关联式容器map和multimap
- Hibernate三种容器(List,Set,Map)映射技术之Map映射
- 关联式容器-map
- SGISTL源码探究-关联式容器:hash_map
- STL学习——STL中的关联式容器总结(RB-tree、set、map、hashtable、hash_set、hash_map)