STL-实操

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

  1. 创建10名员工,放到vector中
  2. 遍历vector容器,取出每个员工,进行随机分组
  3. 分组后,将员工部门编号作为key,具体员工作为value,放入到multimap容器中
  4. 分部门显示员工信息
#include<iostream>
#include<vector>
#include<ctime>
#include<map>#define cehua 0
#define meishu 1
#define yanfa 2using namespace std;
//公司今天招聘了10个员工(ABCDEFGHIJ),10名员工进入公司之后,需要指派员工在那个部门工作
//员工信息有 : 姓名 工资组成;部门分为:策划、美术、研发
//随机给10名员工分配部门和工资
//通过multimap进行信息的插入 key(部门编号) value(员工)
//分部门显示员工信息//解析思路
/*
用vector创建员工,存放员工信息,用类存放,
用编号存放信息,例如1编号存放美术部门的员工,multimap(insert(i,Person))
显示员工分部门,先找到部门的编号通过find找到返回迭代器,通过编号输出,通过迭代器输出内容
*/class Person
{
public:string name;int salary;
};void createPerson(vector<Person>& v)
{string seed = "ABCDEFGHIJ";for (int i = 0; i < 10; i++){Person s1;s1.name += seed[i];s1.salary = rand() % 10000 + 10000; //10000-19999v.push_back(s1);}
}void setPerson(vector<Person>& v,multimap<int,Person>&m)
{for (vector<Person>::iterator it = v.begin(); it != v.end();it++) {int i = rand() % 3;  //用编号存放部门m.insert(make_pair(i, *it));}
}void showPerson(vector<Person>&v, multimap<int, Person>& m)
{//通过编号输出员工信息cout << "策划部门:" << endl;multimap<int, Person>::iterator pos = m.find(cehua);  //先通过策划找到迭代器的位置int count = m.count(cehua);  //cehua 编号的数量int index = 0;  //输出计数for (; pos != m.end() && index < count; index++, pos++){cout << "姓名: " << pos->second.name << " 薪资: " << pos->second.salary << endl;}cout << "----------------------" << endl;//通过编号输出员工信息cout << "美术部门:" << endl;pos = m.find(meishu);  //先通过策划找到迭代器的位置count = m.count(meishu);  //cehua 编号的数量index = 0;  //输出计数for (; pos != m.end() && index < count; index++, pos++){cout << "姓名: " << pos->second.name << " 薪资: " << pos->second.salary << endl;}cout << "----------------------" << endl;//通过编号输出员工信息cout << "研发部门:" << endl;pos = m.find(yanfa);  //先通过策划找到迭代器的位置count = m.count(yanfa);  //cehua 编号的数量index = 0;  //输出计数for (; pos != m.end() && index < count; index++, pos++){cout << "姓名: " << pos->second.name << " 薪资: " << pos->second.salary << endl;}cout << "----------------------" << endl;
}int main()
{srand((unsigned int)time(NULL));vector<Person> v;multimap<int, Person> m;createPerson(v);setPerson(v, m);showPerson(v,m);return 0;
}

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

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

相关文章

mysql 基础(三)

一、多表设计 数据库设计范式 第一范式(确保每列保持原子性) 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值&#xff0c;就说明该数据库表满足了第一范式。第二范式就是要有主键&#xff0c;要求其他字段都依赖于主键。 没有主键就没有唯一性&…

用ChatGPT写申请文书写进常春藤联盟?

一年前&#xff0c;ChatGPT 的发布引发了教育工作者的恐慌。现在&#xff0c;各大学正值大学申请季&#xff0c;担心学生会利用人工智能工具伪造入学论文。但是&#xff0c;聊天机器人创作的论文足以骗过大学招生顾问吗&#xff1f; ChatGPT简介 ChatGPT&#xff0c;全称聊天生…

如何修改指针变量的值“指针的引用*“

如何修改指针变量的值"指针的引用*&" 案例&#xff1a; void createObj(QFrame *f){f new QFrame(this); } QFrame *frame; createObj(frame);上面这个案例frame并不会被new&#xff0c;会导致frame野指针。 void createObj(QFrame *&f){f new QFrame(t…

【格密码基础】基于LWE问题的密码系统

目录 一. 介绍 二. LWE密码方案简单介绍 三. LWE经典归约 四. LWE性质 五. LWE的鲁棒性 一. 介绍 在2005年&#xff0c;Regev基于LWE问题提出了一个新的公钥密码方案。该方案可实现语义安全&#xff08;semantic security&#xff09;&#xff0c;其中误差率&#xff08;…

【云原生】Docker的镜像创建

目录 1&#xff0e;基于现有镜像创建 &#xff08;1&#xff09;首先启动一个镜像&#xff0c;在容器里做修改 ​编辑&#xff08;2&#xff09;然后将修改后的容器提交为新的镜像&#xff0c;需要使用该容器的 ID 号创建新镜像 实验 2&#xff0e;基于本地模板创建 3&am…

单链表的删除

设存储元素ai的结点为q&#xff0c;要实现将结点q删除单链表的操作&#xff0c;其实就是将它的前继结点的指针绕过&#xff0c;指向它的后继结点即可。 我们所要做的&#xff0c;实际上就是一步&#xff0c;p->nextp->next->next&#xff0c;用q来取代p->next&…

蓝凌OA sysUiExtend.do 任意文件上传漏洞复现

0x01 产品简介 蓝凌核心产品EKP平台定位为新一代数字化生态OA平台,数字化向纵深发展,正加速构建产业互联网,对企业协作能力提出更高要求,蓝凌新一代生态型OA平台能够支撑办公数字化、管理智能化、应用平台化、组织生态化,赋能大中型组织更高效的内外协作与管理,支撑商业…

shallowRef与shallowReactive

shallowRef&#xff1a;浅层响应->整体重新赋新值才会触发更新&#xff0c;只改变单个属性不会触发更新 shallowReactive&#xff1a;浅层响应->第一层属性变化会触发更新&#xff0c;不是第一层属性不会触发更新 <template><div><h2>{{ person }}&l…

[docker] Docker的数据卷、数据卷容器,容器互联

一、数据卷&#xff08;容器与宿主机之间数据共享&#xff09; 数据卷是一个供容器使用的特殊目录&#xff0c;位于容器中。可将宿主机的目录挂载到数据卷上&#xff0c;对数据卷的修改操作立刻可见&#xff0c;并且更新数据不会影响镜像&#xff0c;从而实现数据在宿主机与容…

81.网游逆向分析与插件开发-背包的获取-装备栏数据结构的逆向分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;自动化助手显示物品数据-CSDN博客 然后游戏中有弓箭&#xff0c;弓箭有数量&#xff0c;可以作为突破口&#xff0c;也可以使用物品id 获取弓的方式 获取弓箭的方式 然后搜索250 然后搜索出一个 然后…

Spring和 Springboot的区别你了解吗

什么是Spring The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. 简单来说Spring framework为基于Java的企业应用程序提供了全面的编程和配置模型&am…

Linux零碎点

目录 Linux基础命令 1、who&#xff1a; 2、hostname&#xff1a; 3、ifconfig&#xff1a; 4、pwd&#xff1a; 5、cd&#xff1a; 6、exit&#xff1a; 7、shutdown&#xff1a; 8、ls&#xff1a; 9、创建文件夹&#xff1a; 10、touch&#xff1a; 11、cp&#…

在百度云免费配置SSL证书 http改https操作

以下以在百度智能云上的操作为例&#xff0c;并不是给他打广告 1.购买域名 2.到域名管理处&#xff0c;解析网址&#xff0c;添加,*,www,指向服务器IP&#xff0c; 此时就可以访问网址&#xff1a;http://www.域名.cn 3.但是浏览器会报不安全&#xff0c;所以需要配置SSL证书…

【手写数据库toadb】10 开发数据库内核开发阶段-数据库模型

数据库内核模型介绍 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方…

acrobat调整pdf的页码和实际页码保持一致

Acrobat版本 具体操作 现在拿到pdf的结构如下&#xff1a; pdf页码实际页码1-10页无页码数11页第1页 操作&#xff0c;选择pdf第10页&#xff0c;右键点击 具体设置 最终效果

web前端之ES6的实用深度解构赋值方法、复杂的解构赋值

MENU 前言解构对象解构数组解构混用 前言 ES6中允许按照一定模式&#xff0c;从数组和对象中提取值&#xff0c;对变量进行赋值&#xff0c;这被称为解构(Destructuring)。 使用解构赋值可以将复杂的代码整理的更加干净整洁。 解构对象 在没有使用解构之前&#xff0c;想要确定…

实习日志5

活字格图片上传功能&#xff08;批量&#xff09; 这个报错真的恶心&#xff0c;又看不了他服务器源码&#xff0c;接口文档又是错的 活字格V9获取图片失败bug&#xff0c;报错404-CSDN博客 代码BUG记录&#xff1a; 问题&#xff1a;上传多个文件的base64编码被最后一个文…

【oracle】oracle客户端及oracle连接工具

一、关于oracle客户端 1.1 Oracle Client 完整客户端 包含完整的客户端连接工具。 包很大&#xff0c;需要安装 1.2 instantclient 即时客户端 是 Oracle(R) 发布的轻量级数据库客户端&#xff0c;减少甚至只包含几个文件&#xff0c;您无需安装标准的客户端&#xff0c;就可以…

mybatis plus入门

mybatis plus入门 MyBatis-Plus 是 MyBatis 的一个增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。它继承了 MyBatis 原生的所有特性&#xff0c;并且做了深度的优化和扩展。以下是 MyBatis-Plus 的一些主要特性和功能&#…

视频渲染靠cpu还是显卡 会声会影视频渲染的作用是什么

视频渲染最占用的资源就是CPU&#xff0c;多核心多线程&#xff0c;这样才能渲染快。渲染可以在时间线上实时平滑预览&#xff0c;便于编辑&#xff0c;最终导出成片的时候速度也会快一些&#xff0c;渲染就是对每桢的图像进行重新优化的过程。 渲染的作用主要是能够保证使用者…