我有一个嵌套的map,比如map<int, map<int, string>>
,我想用一个初始化器列表来初始化它。我可以用一个初始化器列表来初始化一个单级map,但是我似乎无法找出嵌套map的正确语法。这可能吗?
我的天
// This example shows how to initialize some maps
// Compile with this command:
// clang++ -std=c++11 -stdlib=libc++ map_initialization.cpp -o map_initialization
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main(){
cout << "\nLearning map initialization.\n" << endl;
map<int, string> level1map = {
{1, "a"},
{2, "b"},
{3, "c"}
};
for (auto& key_value : level1map) {
cout << "key: " << key_value.first << ", value=" << key_value.second << endl;
}
// This section doesn't compile
// map<int, map<int, string>> level2map = {
// {0,
// {0, "zero"},
// {1, "one"},
// {2, "two"}
// },
// {1,
// {0, "ZERO"},
// {1, "ONE"},
// {2, "TWO"}
// }
// };
return 0;
}
4条答案
按热度按时间nnsrf1az1#
只是内部Map内容周围缺少一对大括号:
如果你把它写在一行中,也许会更引人注目。一个四件事的清单:
与两件事的列表,其中第二件事是三件事的列表:
qqrboqgw2#
e7arh2l63#
第一对的第二个值缺少{}:
ars1skjm4#
Map初始化Map:
此外,如果您想访问
map of map
中的所有元素,则可以使用下面的方法。输出: