説明:
各部署に割り当てられた会社に1.10 ABCDEFGHIJの従業員。
2.従業員情報:名前、賃金からなる、セクタ情報は以下のとおりです。計画、芸術、研究開発、
10人の従業員と賃金3.ランダム分布部門。
4. Multimapはを介して情報を入力します。キー:部門番号、値:従業員
表示情報にサブセクターの従業員。
srand関数((符号なし)時間(NULL)):毎回繰り返さないようにするために、乱数は、多くの場合、システム時刻を初期化するために使用され
書式#include <iostreamの> 使用して 名前空間はstdを、 書式#include <ベクトル> の#include < 文字列 > の#include <マップ> 書式#include <CTIME> / * - 今日は、その部門での作業に割り当てる従業員に会社、必要に入った後、10人の従業員(ABCDEFGHIJ)、10人の従業員を募集しました - 従業員の情報:名前賃金コンポーネント;部門に分かれて:企画、芸術、研究開発 - ランダムに10部門やスタッフの賃金に割り当てられました - マルチマップでキー情報(部門番号)値(従業員)を挿入 - サブセクターの従業員情報の表示 * / #define CEHUA 0 の#define Meishu 1つ の#define YANFA 2 クラスワーカー { 公共: 文字列M_NAME。 int型m_Salary; }。 空 createWorker(ベクトル<労働者>&V) { 文字列 nameSeed = " ABCDEFGHIJ " 。 以下のために(INT iが= 0 ; I < 10 ; I ++ ) { 労働者の労働者。 worker.m_Name = " 员工" 。 worker.m_Name + = nameSeed [I]。 worker.m_Salary = RAND()%10000 + 10000 ; // 10000〜19999 // コンテナに配置された従業員 v.push_back(労働者)。 } } // 员工分组 空のsetGroup(ベクトル<労働者>&V、マルチマップ< int型、労働者>&M) { 用(;それ= v.end();!それ++ベクトル<ワーカー> ::イテレータが、それは()をv.begin = ) { //は、乱数発生セクタ INT DEPTID = RAND()%を3 ; // 0 1 2 // パケットに挿入された従業員は、 // キー部門番号、値の特定の従業員の m.insert(make_pair(DEPTID、* IT)); } } 空 showWorkerByGourp(マルチマップ< int型、労働者>&M) { // 0 ABC 1 DE 2 FG ... coutの<< " 企画部門:" << てendl; マルチマップ < int型、労働者> ::イテレータのpos = m.find(CEHUA)。 int型のカウント= m.count(CEHUA)。// 统计具体人数 int型のインデックス= 0 ; 以下のための(!; POS = m.end()&&指数<数; POS ++、インデックス++ ) { 裁判所未満 << " 姓名:" << POS-> second.m_Name << " 工资:" << POS-> second.m_Salary << てendl; } 裁判所未満 << " ---------------------- " << てendl; 裁判所未満 << " 美術部門:" << てendl; POS = m.find(MEISHU)。 COUNT = m.count(Meishu); // 正確な数のカウント インデックス= 0を; ため(!; = m.end POS()&&指数<COUNT; POS ++、インデックス++ ) { 裁判所未満 << " 姓名:" << POS-> second.m_Name << " 工资:" << POS-> second.m_Salary << てendl; } 裁判所未満 << " ---------------------- " << てendl; 裁判所未満 << " R&D部門:" << てendl; POS = m.find(YANFA)。 COUNT = m.count(YANFA); // 正確な数のカウント インデックス= 0を; ため(!; = m.end POS()&&指数<COUNT; POS ++、インデックス++ ) { 裁判所未満 << " 姓名:" << POS-> second.m_Name << " 工资:" << POS-> second.m_Salary << てendl; } } INT メイン(){ srand関数((符号なし整数)時間(NULL)); // 1、従業員が作成 ベクトル<ワーカー> vWorkerを。 createWorker(vWorker)。 // 2、パケットの従業員 マルチマップ< int型、労働者> mWorker。 setGroup(vWorker、mWorker)。 // 3、グループ化された従業員 showWorkerByGourp(mWorker)。 /// /测试 // のための(!ベクトル<ワーカー> ::イテレータそれはvWorker.beginを(=);それ= vWorker.end();それ++) // { // coutの<< "姓名:" <<それ- > M_NAME << "工资:" << IT-> m_Salary <<てendl; // } システム(" 一時停止" )。 リターン 0 ; }
出力: