我有一个嵌套在另一个地图中的地图,我想为外部地图指定值,但我不太清楚如何做到这一点。这导致程序在开始之前就破坏了。我运行时没有显示任何错误
map<int, map<int, int>> outer;
map<int, int> inner;
outer.emplace(1, make_pair(2, 1));
outer.emplace(2, make_pair(2, 1));
outer.emplace(3, make_pair(2, 1));
outer.emplace(1, make_pair(3, 1));
任何帮助都会有所帮助
答案 0 :(得分:1)
嗯,外部地图的mapped_type是map<int, int>
,但是您尝试使用pair<int, int>
构建它。你可以试试像
outer.emplace(1, map<int,int>{ { 2, 1 } });
outer.emplace(2, map<int,int>{ { 2, 1 } });
outer.emplace(3, map<int,int>{ { 2, 1 } });
outer.emplace(1, map<int,int>{ { 3, 1 } });
它有一个缺点,它很丑,甚至可能不是你想要的:最后一行没有效果,因为键1
已经有一个值,并且emplace没有效果那种情况。如果您打算将条目{ 3, 1 }
添加到第一个内部地图中,使其现在包含{ { 2, 1 }, { 3, 1 } }
,您可以改为使用以下构造,看起来好得多恕我直言:
outer[1].emplace(2, 1);
outer[2].emplace(2, 1);
outer[3].emplace(2, 1);
outer[1].emplace(3, 1);