我想遍历一个数据结构-- unordered_map>> myMap。为了进一步指定,我希望获得像-> myMapsomeVal1 {这个无序映射的所有第二个元素}这样的数据元素
我知道3d数组也可以做同样的事情,但是使用3d数组效率不高,因为数据范围很大,程序最终会使用比所需空间多得多的空间。我尝试使用一些迭代器,如unordered_map>>::iterator i和其他几个这样的迭代器,但是它总是以这样或那样的错误告终。有人能帮我理解一下这张地图是如何遍历的吗?提前感谢!
发布于 2020-08-14 19:55:18
如果不想使用迭代器,可以使用foreach循环遍历映射(它需要C++11,我认为这不是问题)。
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,而是只迭代第三级的值,那么这应该是可行的:
int k1, k2;
for(auto& key_value : myMap.at(k1).at(k2)){
//...
}https://stackoverflow.com/questions/63412047
复制相似问题