C++ C++;11带列表初始化的嵌套映射

C++ C++;11带列表初始化的嵌套映射,c++,c++11,map,initialization,initializer-list,C++,C++11,Map,Initialization,Initializer List,我有一个嵌套映射,即,map,我想用初始值设定项列表初始化它。我可以使用初始值设定项列表来初始化单级映射,但似乎无法找出嵌套映射的正确语法。有可能吗 MWE: //此示例演示如何初始化某些映射 //使用此命令编译: //clang++-std=c++11-stdlib=libc++map\u初始化.cpp-o map\u初始化 #包括 #包括 #包括 使用名称空间std; int main(){ coutmap level2map={ { 0, {{0,“零”}, {1,“一”}, {2,“两个

我有一个嵌套映射,即,
map
,我想用初始值设定项列表初始化它。我可以使用初始值设定项列表来初始化单级映射,但似乎无法找出嵌套映射的正确语法。有可能吗

MWE:

//此示例演示如何初始化某些映射
//使用此命令编译:
//clang++-std=c++11-stdlib=libc++map\u初始化.cpp-o map\u初始化
#包括
#包括
#包括
使用名称空间std;
int main(){
cout
map level2map={
{ 0,
{{0,“零”},
{1,“一”},
{2,“两个”}
},
{ 1,
{{0,“零”},
{1,“一”},
{2,“两个”}
}
};

您只是在内部地图内容周围缺少一对大括号:

map<int, map<int, string>> level2map = {
    {0, {
        {0, "zero"},
        {1, "one"},
        {2, "two"}
    }},

    {1, {
        {0, "ZERO"},
        {1, "ONE"},
        {2, "TWO"}
    }}
};
与列出两件事相比,第二件事是列出三件事:

{0, {{0, "zero"}, {1, "one"}, {2, "two"}}}

第一对的第二个值缺少{}:

map<int, map<int, string>> level2map = {
  {0, {
          {0, "zero"},
          {1, "one"},
          {2, "two"}
      }
  },

  {1, {
          {0, "ZERO"},
          {1, "ONE"},
          {2, "TWO"}
      }
  }
};
map level2map={
{0, {
{0,“零”},
{1,“一”},
{2,“两个”}
}
},
{1, {
{0,“零”},
{1,“一”},
{2,“两个”}
}
}
};
{0, {0, "zero"}, {1, "one"}, {2, "two"}}
{0, {{0, "zero"}, {1, "one"}, {2, "two"}}}
map<int, map<int, string>> level2map = {
  {0, {
          {0, "zero"},
          {1, "one"},
          {2, "two"}
      }
  },

  {1, {
          {0, "ZERO"},
          {1, "ONE"},
          {2, "TWO"}
      }
  }
};