环境:Visual Studio 2017版本
B站的课程链接:https://www.bilibili.com/video/BV1et411b73Z?p=236&spm_id_from=pageDriver
#include<iostream> #include<string> using namespace std; #include<vector> #include<map> #include<time.h> #define CEHUA 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 vWorker; vWorker.m_Name = "员工"; vWorker.m_Name += nameSeed[i]; vWorker.m_Salary = rand() % 10000 + 10000;//10000~19999 //将员工放入到容器中 v.push_back(vWorker); } } //员工分组 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(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、创建员工 vector<Worker>vWorker; createWorker(vWorker); //测试 //for (vector<Worker>::iterator it = vWorker.begin(); it != vWorker.end(); it++) //{ // cout << "姓名: " << it->m_Name << "工资: " << it->m_Salary << endl; //} //2、员工分组 multimap<int, Worker>mWorker; setGroup(vWorker, mWorker); //3、显示员工 showWorkerByGroup(mWorker); system("pause"); return 0; }
综合使用了STL的容器,这里用到了vector,map容器的相关接口……