multimap案例
2015-10-14 16:22
495 查看
Multimap案例:
//一个key值可以对应多个value
//公司有销售部sale(员工2名)、技术研发部development(1人)、财务部Financial(2人)
//人员信息有:姓名,年龄,电话,工资等组成
//通过multimap进行信息的插入、保存、显示
//分部门显示员工信息
#include <iostream>
using namespace std;
#include <map>
#include <string>
class Person
{
public:
string name;
int age;
string tel;
double saly;
};
int main()
{
Person p1,p2,p3,p4,p5;
p1.name="王1";
p1.age=31;
p2.name="王2";
p2.age=32;
p3.name="张3";
p3.age=33;
p4.name="张4";
p4.age=34;
p5.name="赵5";
p5.age=35;
multimap<string,Person> map2;
//sale部门
map2.insert(make_pair("sale",p1));
map2.insert(make_pair("sale",p2));
//development部门
map2.insert(make_pair("development",p3));
map2.insert(make_pair("development",p4));
//Financial部门
map2.insert(make_pair("Financial",p5));
//遍历
for(multimap<string,Person>::iterator it=map2.begin();it!=map2.end();it++)
{
cout<<it->first<<"\t"<<it->second.name<<endl;
}
cout<<"---遍历结束---"<<endl;
int num2=map2.count("development");
cout<<"development部门人数==>"<<num2<<endl;
cout<<"development部门员工信息:"<<endl;
multimap<string,Person>::iterator it2=map2.find("development");
int tag=0;
while(it2!=map2.end()&&tag<num2)
{
cout<<it2->first<<"\t"<<it2->second.name<<endl;
it2++;
tag++;
}
system("pause");
return 0;
}
修改数据的值案例:
#include <iostream>
using namespace std;
#include <map>
#include <string>
class Person
{
public:
string name;
int age;
string tel;
double saly;
};
int main()
{
Person p1,p2,p3,p4,p5;
p1.name="王1";
p1.age=31;
p2.name="王2";
p2.age=32;
p3.name="张3";
p3.age=33;
p4.name="张4";
p4.age=34;
p5.name="赵5";
p5.age=35;
multimap<string,Person> map2;
//sale部门
map2.insert(make_pair("sale",p1));
map2.insert(make_pair("sale",p2));
//development部门
map2.insert(make_pair("development",p3));
map2.insert(make_pair("development",p4));
//Financial部门
map2.insert(make_pair("Financial",p5));
//把age=32修改为name32
cout<<"按照条件检索数据进行修改:"<<endl;
for(multimap<string,Person>::iterator it=map2.begin();it!=map2.end();it++)
{
cout<<it->first<<"\t"<<it->second.name<<endl;
if(it->second.age==32)
{
it->second.name="name32";
}
}
cout<<"------------------------"<<endl;
for(multimap<string,Person>::iterator it=map2.begin();it!=map2.end();it++)
{
cout<<it->first<<"\t"<<it->second.name<<endl;
}
cout<<"---遍历结束---"<<endl;
system("pause");
return 0;
}
//一个key值可以对应多个value
//公司有销售部sale(员工2名)、技术研发部development(1人)、财务部Financial(2人)
//人员信息有:姓名,年龄,电话,工资等组成
//通过multimap进行信息的插入、保存、显示
//分部门显示员工信息
#include <iostream>
using namespace std;
#include <map>
#include <string>
class Person
{
public:
string name;
int age;
string tel;
double saly;
};
int main()
{
Person p1,p2,p3,p4,p5;
p1.name="王1";
p1.age=31;
p2.name="王2";
p2.age=32;
p3.name="张3";
p3.age=33;
p4.name="张4";
p4.age=34;
p5.name="赵5";
p5.age=35;
multimap<string,Person> map2;
//sale部门
map2.insert(make_pair("sale",p1));
map2.insert(make_pair("sale",p2));
//development部门
map2.insert(make_pair("development",p3));
map2.insert(make_pair("development",p4));
//Financial部门
map2.insert(make_pair("Financial",p5));
//遍历
for(multimap<string,Person>::iterator it=map2.begin();it!=map2.end();it++)
{
cout<<it->first<<"\t"<<it->second.name<<endl;
}
cout<<"---遍历结束---"<<endl;
int num2=map2.count("development");
cout<<"development部门人数==>"<<num2<<endl;
cout<<"development部门员工信息:"<<endl;
multimap<string,Person>::iterator it2=map2.find("development");
int tag=0;
while(it2!=map2.end()&&tag<num2)
{
cout<<it2->first<<"\t"<<it2->second.name<<endl;
it2++;
tag++;
}
system("pause");
return 0;
}
修改数据的值案例:
#include <iostream>
using namespace std;
#include <map>
#include <string>
class Person
{
public:
string name;
int age;
string tel;
double saly;
};
int main()
{
Person p1,p2,p3,p4,p5;
p1.name="王1";
p1.age=31;
p2.name="王2";
p2.age=32;
p3.name="张3";
p3.age=33;
p4.name="张4";
p4.age=34;
p5.name="赵5";
p5.age=35;
multimap<string,Person> map2;
//sale部门
map2.insert(make_pair("sale",p1));
map2.insert(make_pair("sale",p2));
//development部门
map2.insert(make_pair("development",p3));
map2.insert(make_pair("development",p4));
//Financial部门
map2.insert(make_pair("Financial",p5));
//把age=32修改为name32
cout<<"按照条件检索数据进行修改:"<<endl;
for(multimap<string,Person>::iterator it=map2.begin();it!=map2.end();it++)
{
cout<<it->first<<"\t"<<it->second.name<<endl;
if(it->second.age==32)
{
it->second.name="name32";
}
}
cout<<"------------------------"<<endl;
for(multimap<string,Person>::iterator it=map2.begin();it!=map2.end();it++)
{
cout<<it->first<<"\t"<<it->second.name<<endl;
}
cout<<"---遍历结束---"<<endl;
system("pause");
return 0;
}
相关文章推荐
- Storm(二)Storm基本术语
- PHP将HTML转换成各种格式图片或PDF
- C++Primer第五版 练习11.38-1单词统计程序(解答)
- 文本编码的智能识别(它的两个指导哲学真是绝妙)
- servlet3.0 头部标准
- 重复造轮之权限管理系统
- css制作简单下拉菜单
- PHP变量
- UIView中的坐标转换
- android 中解析RSSxml文件 GMT格式时间格式化
- Apache目录访问权限配置详解
- springMVC 请求404异常或静态资源无法访问
- 大素数判断和素因子分解模板(miller-rabin,Pollard_rho算法)
- CI 框架中的自定义路由规则
- C++STL学习(3)容器list
- 性能测试学习笔记
- 导出数据库数据
- oracle客户端及时版
- hibernate之更新对象后,子对象也给更新了
- PostgreSQL trigger (function) examples