您的位置:首页 > 其它

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;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: