• STL之map学习实例


      1 ```
      2 #include<iostream>
      3 #include<algorithm>
      4 #include<vector>
      5 #include<map>
      6 #include<cstring>
      7 #include<cstdlib>
      8 #include<ctime>
      9 using namespace std;
     10 
     11 #define SALE_DEPATMENT 1//销售部门
     12 #define DEVELOP_DEPATMENT 2//研发部门
     13 #define FINACIAL_DEPATMENT 3//财务部门
     14 
     15 /*multimap案例
     16 公司今天招聘了5个员工,5名员工进入公司之后,需要指派员工在那个部门工作
     17 人员信息有:姓名 年龄 电话 工资等组成
     18 通过multimap 进行信息的插入 保存 显示
     19 分部门显示员工信息 显示全部员工信息*/
     20 
     21 class Worker{
     22 public:
     23     string mName;
     24     string mTele;
     25     int mAge;
     26     int mSalary;
     27 };
     28 
     29 void Creat_Worker(vector<Worker>& vWorker){
     30     string seedName="ABCDE";
     31     for( int i=0; i<5; i++ ){
     32         Worker worker;
     33         worker.mName="员工";
     34         worker.mName+=seedName[i];
     35 
     36         worker.mAge=rand()%10+20;
     37         worker.mTele="010-8888888";
     38         worker.mSalary=rand()%10000+10000;
     39         //保存员工信息
     40         vWorker.push_back(worker);
     41 
     42     }
     43 }
     44 
     45 //员工分组
     46 void WorkerByGroup(vector<Worker>& vWorker,multimap<int,Worker>& WorkerGroup){
     47     //把员工随机分配到不同的部门
     48     srand(time(NULL));
     49     for(vector<Worker>::iterator it=vWorker.begin(); it!=vWorker.end(); it++ ){
     50         int departID=rand()%3+1;
     51         switch(departID){
     52         case SALE_DEPATMENT:
     53             WorkerGroup.insert(make_pair(SALE_DEPATMENT,*it));
     54             break;
     55         case DEVELOP_DEPATMENT:
     56             WorkerGroup.insert(make_pair(DEVELOP_DEPATMENT,*it));
     57             break;
     58         case FINACIAL_DEPATMENT:
     59             WorkerGroup.insert(make_pair(FINACIAL_DEPATMENT,*it));
     60             break;
     61         default:
     62             break;
     63         }
     64     }
     65 
     66 }
     67 
     68 void ShowGroupWorkers(multimap<int,Worker>& WorkerGroup,int departID){
     69     multimap<int,Worker>::iterator it=WorkerGroup.find(departID);
     70     int DepartCount=WorkerGroup.count(departID);
     71     int num=0;
     72     for( ;num<DepartCount&&it!=WorkerGroup.end(); it++,num++ ){
     73         cout<<"姓名:"<<it->second.mName<<" 年龄:"<<it->second.mAge<<" 电话:"
     74         <<it->second.mTele<<" 工资:"<<it->second.mSalary<<endl;
     75     }
     76 }
     77 
     78 //打印每一部门的员工信息
     79 void PrintWorkerByGroup(multimap<int,Worker>& WorkerGroup){
     80     //打印销售部员工信息
     81     cout<<"销售部门"<<endl;
     82     ShowGroupWorkers(WorkerGroup,SALE_DEPATMENT);
     83     //打印研发部员工信息
     84     cout<<"研发部门"<<endl;
     85     ShowGroupWorkers(WorkerGroup,DEVELOP_DEPATMENT);
     86     //打印财务部员工信息
     87     cout<<"财务部门"<<endl;
     88     ShowGroupWorkers(WorkerGroup,FINACIAL_DEPATMENT);
     89 
     90 }
     91 
     92 
     93 int main(){
     94     //存放新员工的信息
     95     vector<Worker> vWorker;
     96     //multimap保存分组信息
     97     multimap<int,Worker> WorkerGroup;
     98     //创建员工
     99     Creat_Worker(vWorker);
    100     //员工分组
    101     WorkerByGroup(vWorker,WorkerGroup);
    102     //打印每一部门的员工信息
    103     PrintWorkerByGroup(WorkerGroup);
    104 
    105     return 0;
    106 }
    107 
    108 ```
    有些目标看似很遥远,但只要付出足够多的努力,这一切总有可能实现!
  • 相关阅读:
    团队冲刺第四天
    团队冲刺第三天
    找1的个数
    寻找最水之王
    最优价格买书
    团队冲刺第二天
    团队冲刺第一天
    团队开发项目特点
    第一阶段冲刺站立会议报告——4
    第一阶段冲刺站立会议报告——3
  • 原文地址:https://www.cnblogs.com/Bravewtz/p/10325823.html
Copyright © 2020-2023  润新知