このブログを検索

2019年9月1日日曜日

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

【C++】 std::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 <map>

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

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

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

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

    int add = 0;
    for (itr = m.begin(); itr != m.end(); itr++)
    {
        //mapの場合はHonda, Nissan, Toyotaの順番で50音順にならんでいるので、
        //Hondaに+10、Nissanに+20、Toyotaに+30される。
        add += 10;
        itr->second += add;
    }

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

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

    return 0;
}

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

0 件のコメント:

コメントを投稿