stl案例二——员工分组

news2025/1/12 20:42:02

案例描述

        公司今天招聘了10个员工,10名员工进入公司之后,需要指派员工在那个部门工作
        员工信息有:姓名 工资组成;部门分为:策划、美术、研发
        随机给10名员工分配部门和工资
        通过multimap进行信息的插入 key(部门编号)value(员工)
        分部门显示员工信息

实现步骤

        创建10名员工,放到vector中
        遍历vector容器,取出每个员工,进行随机分组
        分组后,将员工部门编号作为key,具体员工作为value,放入到multimap容器中
        分部门显示员工信息

代码实现

#include <iostream>
#include <string.h>
#include <iterator>
#include <vector>
#include <string>
#include <algorithm>
#include <deque>
#include <bitset>
#include <ctime>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
using namespace std;

#define cehua 0
#define meishu 1
#define yanfa 2

class Worker
{
public:
	string m_Name;//员工姓名
	int m_Salary;//员工工资
};

void CreateWorker(vector<Worker>&v)
{
	string name = "ABCDEFGHIJ";
	for(int i = 0;i<10;i++)
	{
		Worker worker;
		worker.m_Name = "员工";
		worker.m_Name +=name[i];//姓名
		worker.m_Salary = rand() % 10000 + 10000;//10000 ~ 19999
		//将员工放入到容器中
		v.push_back(worker);
	}
}

void group(vector<Worker>&v,multimap<int,Worker>&m)
{
	//遍历员工
	for(vector<Worker>::iterator it = v.begin();it != v.end();it++)
	{
		//产生随机部门编号
		int n = rand() % 3;
		
		//将编号和员工容器放到m中
		m.insert(make_pair(n,*it));	
	}
}

void show(multimap<int,Worker>&v)
{
	cout << "策划部门: "<< endl;
	
	multimap<int,Worker>::iterator pos = v.find(cehua);
	int c = v.count(cehua);
	int i = 0;
	for(;pos!= v.end() && i < c;i++,pos++)
	{
		cout << "姓名: "<< pos->second.m_Name<<"工资: "<<pos->second.m_Salary<<endl;
	}

	cout << "-------------------" << endl;

	
	cout << "美术部门: "<< endl;
	
	pos = v.find(meishu);
	c = v.count(meishu);
	i = 0;
	for(;pos!= v.end() && i < c;i++,pos++)
	{
		cout << "姓名: "<< pos->second.m_Name<<"工资: "<<pos->second.m_Salary<<endl;
	}
	cout << "-------------------" << endl;

	
	cout << "研发部门: "<< endl;
	
	pos = v.find(yanfa);
	c = v.count(yanfa);
	i = 0;
	for(;pos!= v.end() && i < c;i++,pos++)
	{
		cout << "姓名: "<< pos->second.m_Name<<"工资: "<<pos->second.m_Salary<<endl;
	}
}

int main()
{
	//创建员工
	vector<Worker>vworker;
	CreateWorker(vworker);

	//分组操作
	multimap<int,Worker>m;
	group(vworker,m);

	//分组显示员工
	show(m);

    return 0;
}

编译运行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1037099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

能跑通的mmdet3d版本

能跑通的mmdet3d版本 1.0版本 2.0版本

Java项目:SSM的网上书城系统

作者主页&#xff1a;Java毕设网 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 一、相关文档 1、关于雅博书城在线系统的基本要求 &#xff08;1&#xff09;功能要求&#xff1a;可以管理个人中心、用户管理、图书分类管理、图书信息管理、…

C++入门知识

Hello&#xff0c;今天我们分享一些关于C入门的知识&#xff0c;看完至少让你为后面的类和对象有一定的基础&#xff0c;所以在讲类和对象的时候&#xff0c;我们需要来了解一些关于C入门的知识。 什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对…

PTE 做题方法 Summarise Written Text and Write Essay

目录 Summarise Written Text 如何辨别关键点 Summarize Written Text #2 - 连接关键点 确定主语 SWT常见错误 SWT时间安排 Write Essay #1 - 评分规则 & 文章规划 Write Essay #2 - 范文学习 Write Essay #3 - 训练方法 Essay时间安排 you should get into your…

公众号迁移多久可以完成?

公众号账号迁移的作用是什么&#xff1f;只能变更主体吗&#xff1f;长期以来&#xff0c;由于部分公众号在注册时&#xff0c;主体不准确的历史原因&#xff0c;或者公众号主体发生合并、分立或业务调整等现实状况&#xff0c;在公众号登记主体不能对应实际运营人的情况下&…

【每日一题】1993. 树上的操作

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;深度优先搜索 写在最后 Tag 【深度优先搜索】【树】【设计数据结构】【2023-09-23】 题目来源 1993. 树上的操作 题目解读 本题是一个设计类的题目&#xff0c;对于设计类的题目就一步步的实现题目要求的成员方法即可…

Red Hat 8 重置root管理员密码

Linux系统&#xff1a;Red Hat Enterprise Linux release 8.8 (Ootpa) 确定你的Linux系统是否为RHEL 8&#xff08;Red Hat 8&#xff09;系统&#xff0c;在RHEL 8中&#xff0c;选择“活动”–>“终端”命令&#xff0c;然后在打开的终端中输入如下命令&#xff1a; [ro…

2023华为杯数学建模D题-域碳排放量以及经济、人口、能源消费量的现状分析(如何建立指标和指标体系1,碳排放影响因素详细建模过程)

可能建立的指标如下&#xff1a; 经济指标: 地区生产总值&#xff08;GDP&#xff09;人均GDP&#xff1b;第一产业&#xff08;农林部门&#xff09;产值&#xff1b;第二产业&#xff08;能源供应和工业部门&#xff09;产值&#xff1b;第三产业&#xff08;建筑和交通部门…

js中的类型转换

JavaScript 中有两种类型转换&#xff1a;隐式类型转换&#xff08;强制类型转换&#xff09;和显式类型转换。类型转换是将一个数据类型的值转换为另一个数据类型的值的过程。 隐式类型转换&#xff08;强制类型转换&#xff09;&#xff1a; 隐式类型转换是 JavaScript 自动…

【解决】Unity3D中无法在MQTT事件中执行Animator

问题原因&#xff1a; 解决方法&#xff1a; 解决过程 1、在 Unity 中创建一个名为 MainThreadDispatcher 的脚本&#xff0c;用于处理主线程操作。 using System.Collections.Generic; using UnityEngine;public class MainThreadDispatcher : MonoBehaviour {private stati…

基于springboot+vue的华山旅游网(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

【java】【SpringBoot】【四】原理篇 bean、starter、核心原理

目录 一、自动配置 1、bean加载方式&#xff08;复习&#xff09; 1.1 加载方式-xml方式生命bean 1.2 加载方式-xml注解方式声明bean 1.3 注解方式声明配置类 1.4 FactoryBean 1.5 proxyBeanMethod属性 1.6 使用Import注解导入 1.7 使用上下文对象在容器初始化完毕后注…

(第三百篇BLOG记录)写于博士毕业与入职之初-20230924

启 由于若干原因&#xff08;包括但不限于紧锣密鼓的完成博士毕业的一系列实验和论文撰写、学习各种百花齐放的有意思的领域、完成人生身份的重大转变&#xff09;&#xff0c;导致卡在299篇博客已经很久了&#xff0c;不过算了一下还是在一个较长时间维度上可以基本保持每周一…

CompletableFuture-FutureTask

2. CompletableFuture 语雀 2.1 Future接口理论知识复习 Future接口&#xff08;FutureTask实现类&#xff09;定义了操作异步任务执行一些方法&#xff0c;如获取异步任务的执行结果、取消异步任务的执行、判断任务是否被取消、判断任务执行是否完毕等。 举例&#xff1a;…

github pages 部署单页面

github pages介绍 GitHub Pages是一个免费的托管服务&#xff0c;可以直接从GitHub存储库中创建和托管网站。可以使用GitHub Pages来构建自己的网站或为项目生成网站。每个GitHub帐户和组织都可以拥有一个站点&#xff0c;以及无限的项目站点。 主站点的地址就是用户名.githu…

基于springboot+vue的云南旅游网(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Linux离线安装elasticsearch|header|kibna插件最详细

1.准备软件安装包 [hadoophost152 elasticsearch]$ ll -rw-r--r--. 1 hadoop hadoop 515807354 9月 23 23:40 elasticsearch-8.1.1-linux-x86_64.tar.gz -rw-r--r--. 1 hadoop hadoop 1295593 9月 23 23:48 elasticsearch-head-master.tar.gz -rw-r--r--. 1 hadoop hadoop…

Android修行手册 - Android Studio去掉方法参数提示、变量类型提示、方法引用Usage提示

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

Hudi第一章:编译安装

系列文章目录 Hudi第一章&#xff1a;编译安装 文章目录 系列文章目录前言一、环境准备1.JDK2.Maven1.上传并解压。2.修改源3.添加环境变量 二、hudi编译1.上传解压2.修改pom1.添加仓库2.修改依赖的组件版本 2.修改源码兼容hadoop33.手动安装Kafka依赖1.上传jar包2.install到m…

Linux使用一个脚本启用、停用springboot项目(本文带脚本)

前言 如果仅需要脚本的小伙伴可以下拉至后面&#xff0c;我这里一步一步交大家发布项目 学习之前我们要先会搭建一个项目 可以去看这篇文章&#xff1a;搭建一个SpringBoot项目 一、首先我们配置多环境 0、resources文件如下 1、配置pom.xml文件 <build><!--打包…