前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >STL案例员工分组

STL案例员工分组

原创
作者头像
BrianLee
发布2023-04-08 07:48:58
1810
发布2023-04-08 07:48:58
举报

一、需求

1、公司招聘10名员工(ABCDEFGHIJ),随机分配到3个部门(策划、美术、研发)

2、员工信息:姓名、工资

3、通过multimap进行信息的插入 key(部门编号) value(员工)

4、分部门显示员工信息

二、代码

代码语言:c++
复制
#include <iostream>
#include <map>
#include <vector>
#include <string>
#include <ctime>
using namespace std;
/*
需求:
1、公司招聘10名员工(ABCDEFGHIJ),随机分配到3个部门(策划、美术、研发)
2、员工信息:姓名、工资
3、通过multimap进行信息的插入 key(部门编号) value(员工)
4、分部门显示员工信息
*/
#define CEHUA 0
#define MEISHU 1
#define RD  2

class Worker
{
public:
    string m_Name;
    int m_Salary;

};

//创建10名员工
void createWorker(vector<Worker>& v)
{
    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(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 deptId,value *it;
        m.insert(make_pair(deptId,*it));
    }

}


//分组显示
void showWorkerByGroup(multimap<int,Worker>& m)
{
    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<<"美术部门:";
    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<<"研发部门:";
    pos = m.find(RD);
    count =m.count(RD);                          //统计具体的人数
    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);

}

三、运行结果

代码语言:javascript
复制
姓名:员工A 工资:18407
姓名:员工B 工资:13812
姓名:员工C 工资:14174
姓名:员工D 工资:18192
姓名:员工E 工资:10849
姓名:员工F 工资:14103
姓名:员工G 工资:10687
姓名:员工H 工资:12572
姓名:员工I 工资:13335
姓名:员工J 工资:15919
策划部门: 
姓名:员工C   工资:14174
姓名:员工E   工资:10849
姓名:员工H   工资:12572
姓名:员工J   工资:15919
---------------
美术部门:姓名:员工D   工资:18192
姓名:员工F   工资:14103
姓名:员工G   工资:10687
---------------
研发部门:姓名:员工A   工资:18407
姓名:员工B   工资:13812
姓名:员工I   工资:13335
代码语言:javascript
复制
姓名:员工A 工资:17943
姓名:员工B 工资:10191
姓名:员工C 工资:14192
姓名:员工D 工资:19341
姓名:员工E 工资:13503
姓名:员工F 工资:16553
姓名:员工G 工资:10165
姓名:员工H 工资:17228
姓名:员工I 工资:14151
姓名:员工J 工资:11458
策划部门: 
姓名:员工E   工资:13503
姓名:员工F   工资:16553
---------------
美术部门:姓名:员工A   工资:17943
姓名:员工G   工资:10165
姓名:员工H   工资:17228
姓名:员工J   工资:11458
---------------
研发部门:姓名:员工B   工资:10191
姓名:员工C   工资:14192
姓名:员工D   工资:19341
姓名:员工I   工资:14151
代码语言:javascript
复制
姓名:员工A 工资:17276
姓名:员工B 工资:18981
姓名:员工C 工资:10874
姓名:员工D 工资:16020
姓名:员工E 工资:13056
姓名:员工F 工资:16133
姓名:员工G 工资:13501
姓名:员工H 工资:16499
姓名:员工I 工资:17277
姓名:员工J 工资:15930
策划部门: 
姓名:员工A   工资:17276
姓名:员工B   工资:18981
---------------
美术部门:姓名:员工C   工资:10874
姓名:员工D   工资:16020
姓名:员工F   工资:16133
姓名:员工H   工资:16499
姓名:员工J   工资:15930
---------------
研发部门:姓名:员工E   工资:13056
姓名:员工G   工资:13501
姓名:员工I   工资:17277

四、总结

  1. vector容器存放员工信息
  2. multimap容器存放部门信息
  3. 随机数的使用
  4. 容器存取用iterator

done!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、需求
  • 二、代码
  • 三、运行结果
  • 四、总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档