このブログを検索

2019年9月1日日曜日

【C++】 std::unordered_map連想配列

【C++】 std::unordered_map連想配列
(2019年9月1日)


■使用ソフト
・Visual Studio Community 2019


■言語
・C/C++


■Windows SDK バージョン
・10.0.17763.0
 ※Windows SDK バージョンの変更方法


■手順
1.以下をベースにコード変更する。
【C++】 メッセージボックスの作成

2.C++ファイル(.cpp)を以下のとおり変更する。
#include <windows.h>
#include <string>
#include <unordered_map>

int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
    WCHAR wcText[256];

    std::unordered_map<std::string, int> um = { {"Toyota", 80}, {"Nissan", 60}, };

    um["Honda"] = 40;//追加で設定

    std::unordered_map<std::string, int>::iterator itr = um.find("Nissan");//"Nissan"があるか探す
    if (itr != um.end())//あった場合
    {
        itr->second = 59;//2番目の値を60→59に変更
    }

    int add = 0;
    for (itr = um.begin(); itr != um.end(); itr++)
    {
        //unordered_mapの場合は順番に並んでいないので、
        //バラバラに+10、+20、+30される。
        add += 10;
        itr->second += add;
    }

    swprintf(wcText, 256, L"%d, %d, %d", um["Toyota"], um["Nissan"], um["Honda"]);

    MessageBox(NULL, wcText, L"unordered_map", MB_OK);

    return 0;
}

3.実行結果(Toyota, Nissan, Hondaの値が表示される)

0 件のコメント:

コメントを投稿