C++的STL容器案例-员工分组
2021/11/13 14:39:43
本文主要是介绍C++的STL容器案例-员工分组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 前言
- 一、主要功能
- 二、源程序
- 1.程序
- 2.功能界面
- 总结
前言
环境:Visual Studio 2017版本
B站的课程链接:https://www.bilibili.com/video/BV1et411b73Z?p=236&spm_id_from=pageDriver
一、主要功能
二、源程序
1.程序
#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; }
2.功能界面
总结
综合使用了STL的容器,这里用到了vector,map容器的相关接口……
这篇关于C++的STL容器案例-员工分组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Nacos多环境配置学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos配置中心学习入门指南
- 2024-12-27Nacos配置中心学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos初识学习入门:轻松掌握服务发现与配置管理
- 2024-12-27Nacos初识学习入门:轻松掌握Nacos基础操作
- 2024-12-27Nacos多环境配置学习入门