用C++ 实现 STL multimap 案例

Multimap 案例:

//1个key值可以对应多个valude  =è分组 

//公司有销售部 sale (员工2名)、技术研发部 development (1人)、财务部 Financial (2人) 

//人员信息有:姓名,年龄,电话、工资等组成

//通过 multimap进行 信息的插入、保存、显示

//分部门显示员工信息 

 

 

Multimap.cpp

#include <iostream>

#include <queue>

#include <cstring>

#include <map>

using namespace std;

 

class Employee

{

private:

char m_name[20];

int m_id;

public:

Employee(char *n,int id);

void print();

};

 

Employee::Employee(char *n,int id)

{

strcpy(m_name,n);

m_id =id;

}

void Employee::print()

{

cout << m_name << "  " << m_id << endl;

}

 

int main()

{

Employee s1("aa",10);

Employee s2("bb",11);

Employee s3("cc",12);

Employee s4("dd",13);

Employee s5("ee",14);

Employee s6("ff",15);

Employee s7("gg",16);

 

 

multimap<string,Employee> m;

m.insert(pair<string,Employee>("sale",s1));

m.insert(pair<string,Employee>("sale",s2));

 

m.insert(make_pair("develop",s3));

m.insert(make_pair("develop",s4));

m.insert(make_pair("develop",s5));

 

m.insert(multimap<string, Employee>::value_type("finacial",s6));

m.insert(multimap<string, Employee>::value_type("finacial",s7));

 

 

if(m.empty())

{

cout << "map is empty!" << endl;

}

else

{

cout << "no empty" << endl;

}

 

int num = m.count("develop");

cout << "develop :" << num << endl;

 

multimap<string, Employee>::iterator it = m.find("develop");

for(int i=0;i<num;i++)

{

it->second.print();

it++;

}

 

 

return 0;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值