ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

C++11のmapで範囲for文

vector

vector<int> v = {1, 3, 5};

for (int& a : v) {
    cout << a << endl;
}

↑こうだけどmapはどう書くんだと思ったらstd::pairだった。そりゃそうか。

map<int, string> m = {
        {0, "foo"},
        {4, "bar"},
        {9, "hoge"}
};

for (pair<const int, string>& p : m) {
    cout << p.first << ":" << p.second << endl;
}

あまりキレイになってないな。map<int, string>::iteratorよりマシか