#include<iostream>
using namespace std;
#include<string.h>
#include<vector>
#include<map>
#include <stdlib.h>
#include <ctime>
//multimap 案例
//公司招聘了5个员工,5个员工进入公司之后,需要指派员工在哪个部门工作
//人员信息有:姓名 年龄 电话工资等组成
//通过 multimap 进行信息的 插入 保存 显示
//分部门显示员工信息 显示全部员工信息
enum {
RENLI,YANFA,MEISHU
};
class Worker {
public:
Worker();
~Worker();
string m_Name;
int m_Money;
};
Worker::Worker() {
}
Worker::~Worker() {
}
void creatWorker(vector<Worker>&v) {
string nameSeed = "ABCDE";
for (int i = 0; i < 5; i++) {
string name = "员工";
name += nameSeed[i];
int money = rand() % 10000 + 10000;//10000~19999
Worker w;
w.m_Name = name;
w.m_Money = money;
v.push_back(w);
}
}
void setGroup(vector<Worker>&v,multimap<int,Worker>&m) {
for(vector<Worker>::iterator it=v.begin() ; it!=v.end(); it++) {
//随机产生部门编号
int departmentId= rand()%3;//0 1 2
//将员工分到mulimap 容器中
m.insert(make_pair(departmentId,*it));
}
}
void showGroup(multimap<int,Worker>&m) {
//人力部门的显示
cout<<"人力部门员工如下:"<<endl;
multimap<int,Worker>::iterator pos=m.find(RENLI);
int index=0;
int num=m.count(RENLI);
for(; pos!=m.end(),index<num; pos++,index++) {
cout<<"name:"<<pos->second.m_Name<<" money:"<<pos->second.m_Money<<endl;
}
cout<<"----------------------------------------"<<endl;
cout<<"研发部门员工如下:"<<endl;
pos=m.find(YANFA);
index=0;
num=m.count(YANFA);
for(; pos!=m.end(),index<num; pos++,index++) {
cout<<"name:"<<pos->second.m_Name<<" money:"<<pos->second.m_Money<<endl;
}
cout<<"----------------------------------------"<<endl;
cout<<"美术部门员工如下:"<<endl;
pos=m.find(MEISHU);
index=0;
num=m.count(MEISHU);
for(; pos!=m.end(),index<num; pos++,index++) {
cout<<"name:"<<pos->second.m_Name<<" money:"<<pos->second.m_Money<<endl;
}
cout<<"----------------------------------------"<<endl;
}
int main() {
srand((unsigned int )time(NULL)) ;
//声明一个容器存放员工
vector<Worker>v;
//创建5名员工
creatWorker(v);
//设置分组
//分组的multimap容器
multimap <int,Worker>m;
setGroup(v,m);
//分部门显示员工
showGroup(m);
//员工创建测试
// for (vector<Worker>::iterator it = v.begin(); it != v.end(); it++)
// {
// cout << "name:" << it->m_Name << " money:" << it->m_Money << endl;
// }
system("pause");
return 0;
}
multimap 案例及代码
最新推荐文章于 2021-04-07 16:18:23 发布