C++ STL案例2——员工分组

张开发
2026/4/19 1:44:18 15 分钟阅读

分享文章

C++ STL案例2——员工分组
写在前面⭐如果本篇博文对你有帮助那就 点赞 关注 收藏 一下吧1.案例描述●公司今天招聘了10个员工(ABCDEFGHIJ)10名员工进入公司之后需要指派员工在那个部门工作●员工信息有姓名 工资组成部门分为策划、美术、研发●随机给10名员工分配部门和工资●通过multimap进行信息的插入key部门编号value员工●分部门显示员工信息2.实现步骤1.创建10名员工放到vector中2.遍历vector容器取出每个员工进行随机分组3.分组后将员工部门编号作为key具体员工作为value放入到multimap容器中4.分部门显示员工信息案例代码#include iostream using namespace std; #include vector #include map #include ctime /* 公司今天招聘了10个员工(ABCDEFGHIJ)10名员工进入公司之后需要指派员工在那个部门工作 员工信息有姓名 工资组成部门分为策划、美术、研发 随机给10名员工分配部门和工资 通过multimap进行信息的插入key部门编号value员工 分部门显示员工信息 */ #define CEHUA 0 #define MEISHU 1 #define YANFA 2 class Worker { public: Worker() { } string m_Name; int m_Salary; }; void createWorker(vectorWorkerv) { 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 v.push_back(worker); } } //员工分组 void setGroup(vectorWorkerv,multimapint,Workerm) { for (vectorWorker::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(multimapint,Workerm) { cout 策划部门 endl; multimapint,Worker::iterator pos m.find(CEHUA); int count m.count(CEHUA); //统计具体人数 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() { srand((unsigned int)time(NULL)); //1.创建员工 vectorWorkervWorker; createWorker(vWorker); // //测试 // for (vectorWorker::iterator it vWorker.begin(); it ! vWorker.end(); it) // { // cout 姓名 it -m_Name 工资 it -m_Salary endl; // } //2.分组 multimapint,WorkermWorker; setGroup(vWorker,mWorker); //3.分组显示员工 showWorkerByGroup(mWorker); return 0; }写到后面⭐如果本篇博文对你有帮助那就 点赞 关注 收藏一下吧

更多文章