#include <iostream>
using namespace std;
#include<vector>
#include<map>
#define CHEHUA 0 //策划部门
#define MEISHU 1 //美术部门
#define YANFA 2 //研发部门
class Worker
{
public:
string m_Name;
int m_Salary;
};
void createWorker(vector<Worker>& v)
{
string nameSeed = "ABCDEFGHIJ";
for (int i = 0; i < 10; i++)
{
Worker worker;
worker.m_Name = "员工";
worker.m_Name += nameSeed[i];
worker.m_Salary = rand() % 10000 + 10000; // 10000 - 19999
//rand() % 10000 的结果将是一个范围在 0 到 9999 之间的整数。
//然后,我们对这个结果加上 10000,将范围转换为 10000 到 19999。
//将员工放入容器中
v.push_back(worker);
}
}
//员工分组
void setGroup(vector<Worker>& v, multimap<int, Worker>& m)
{
for (vector<Worker>::iterator it = v.begin(); it != v.end(); it++)
{
//产生随机部门编号
int deptId = rand() % 3; // 0 1 2
//将员工插入到分组中
//key部门编号,value具体员工
m.insert(make_pair(deptId, *it));
}
}
//显示员工
void showWorkerByGroup(multimap<int, Worker>& m)
{
// 0 A B C 1 D E 2 F G ...
cout << "策划部门: " << endl;
multimap<int, Worker>::iterator pos = m.find(CHEHUA); //寻找策划部门迭代器位置
int count = m.count(CHEHUA); // 统计具体人数
int index = 0;
for (; pos != m.end() && index < count; pos++, index++)
{
cout << "姓名: " << pos->second.m_Name << " 工资: " << pos->second.m_Salary << endl;
}
cout << "--------------------------" << endl;
cout << "美术部门: " << endl;
pos = m.find(MEISHU); //寻找美术部门迭代器位置
count = m.count(MEISHU); // 统计具体人数
index = 0;
for (; pos != m.end() && index < count; pos++, index++)
{
cout << "姓名: " << pos->second.m_Name << " 工资: " << pos->second.m_Salary << endl;
}
cout << "--------------------------" << endl;
cout << "研发部门: " << endl;
pos = m.find(YANFA); //寻找研发部门迭代器位置
count = m.count(YANFA); // 统计具体人数
index = 0;
for (; pos != m.end() && index < count; pos++, index++)
{
cout << "姓名: " << pos->second.m_Name << " 工资: " << pos->second.m_Salary << endl;
}
}
int main()
{
//1、创建员工
vector<Worker>vWorker;
createWorker(vWorker);
//2、员工分组
multimap<int, Worker>mWorker;
setGroup(vWorker, mWorker);
//3、显示员工
showWorkerByGroup(mWorker);
// test01();
//cout << "-------------" << endl << endl;
//test02();
//**************************************
system("pause");
return 0;
}
【C++】STL案例2-员工分组
最新推荐文章于 2024-10-16 10:13:45 发布