问题描述
我想遍历数据结构-unordered_map
我知道以下事实:3d数组可以做到这一点,但是使用3d数组效率不高,因为数据范围很大,程序最终将使用比所需空间更多的空间。一些迭代器,例如unordered_map
解决方法
如果您不想使用迭代器,则可以使用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;
// ....
}
}
}
此外,如果您不想遍历所有地图,而只想遍历第三层的值(第一层给定第二层),那么就应该做到:
int k1,k2;
for(auto& key_value : myMap.at(k1).at(k2)){
//...
}