C ++ - 迭代地图的地图

时间:2016-03-13 11:14:35

标签: c++ iterator maps

我想问一下如何迭代地图的地图。我确实有这张地图 - std::map <string, std::map <string, double> > myMap,我想像二维数组一样迭代它。我对迭代器有点熟悉,但我之前没有迭代过2D地图。

我目前有一个循环使用我的迭代器,但我不知道如何迭代第二个映射。你能给我一些提示吗?

感谢您的回答

1 个答案:

答案 0 :(得分:2)

这将在外部地图中打印一个键,后面是外部地图键的内部地图中的每个字符串/双重条目 - 然后对外部地图中的下一个键执行相同操作。

for(auto & outer_map_pair : myMap) {
  cout << outer_map_pair.first << " contains: " << endl;
  for(auto & inner_map_pair : outer_map_pair.second) {
    cout << inner_map_pair.first << ": " << inner_map_pair.second << endl;
  }
}

这可能会打印出来:

foo contains:
bar: 4.4
baz: 5.5
stuff contains:
a: 1.1
b: 2.2
c: 3.3