従業員の++ STLコンテナは、ケースグループ化

説明:

各部署に割り当てられた会社に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_S​​alary = 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 ;
}

出力:

おすすめ

転載: www.cnblogs.com/xiximayou/p/12112336.html