首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c++中遍历unordered_map of unordered_map的unordered_map

如何在c++中遍历unordered_map of unordered_map的unordered_map
EN

Stack Overflow用户
提问于 2020-08-14 19:38:28
回答 1查看 114关注 0票数 0

我想遍历一个数据结构-- unordered_map>> myMap。为了进一步指定,我希望获得像-> myMapsomeVal1 {这个无序映射的所有第二个元素}这样的数据元素

我知道3d数组也可以做同样的事情,但是使用3d数组效率不高,因为数据范围很大,程序最终会使用比所需空间多得多的空间。我尝试使用一些迭代器,如unordered_map>>::iterator i和其他几个这样的迭代器,但是它总是以这样或那样的错误告终。有人能帮我理解一下这张地图是如何遍历的吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-14 19:55:18

如果不想使用迭代器,可以使用foreach循环遍历映射(它需要C++11,我认为这不是问题)。

代码语言:javascript
复制
myMap mapMapMap;
for(auto& mapMap : mapMapMap){
    for(auto& map : mapMap.second){
        for(auto& key_value : map.second){
            int key = key_value.first;
            int value = key_value.second;
            // ....
        }
    }
}

另外,如果你不想迭代所有的map,而是只迭代第三级的值,那么这应该是可行的:

代码语言:javascript
复制
int k1, k2;
for(auto& key_value : myMap.at(k1).at(k2)){
    //...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63412047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档