在 C++ unordered_map 中调用不存在的键的方法
Calling a method on a non-existing key within a c++ unordered_map
快速提问。如果我尝试调用:
,确切的行为是什么
std::unordered_map<int, std::unordered_map<int, double>> myUMap;
myUMap[5].insert(......);
其中 ...... 是一对,假设 myUMap[5] 还不存在?
我听说尝试使用不存在的密钥访问 unordered_map 时会在无序映射中创建该密钥,但在这种情况下,是否会正确地将 运行 插入到如果 myUMap[5] 不存在,则插入它,或者如果存在,则更新其中的 myUMap[5] 的地图?
该行在内部被解析为:
(myUMap.operator[](5)).insert(......);
计算顺序是从左到右。
因此,您首先在 myUMap
上调用 operator[](5)
,如果该元素尚未出现在地图中,它会创建一个元素。因此,您最终插入到一个已经创建的元素中。
快速提问。如果我尝试调用:
,确切的行为是什么std::unordered_map<int, std::unordered_map<int, double>> myUMap;
myUMap[5].insert(......);
其中 ...... 是一对,假设 myUMap[5] 还不存在?
我听说尝试使用不存在的密钥访问 unordered_map 时会在无序映射中创建该密钥,但在这种情况下,是否会正确地将 运行 插入到如果 myUMap[5] 不存在,则插入它,或者如果存在,则更新其中的 myUMap[5] 的地图?
该行在内部被解析为:
(myUMap.operator[](5)).insert(......);
计算顺序是从左到右。
因此,您首先在 myUMap
上调用 operator[](5)
,如果该元素尚未出现在地图中,它会创建一个元素。因此,您最终插入到一个已经创建的元素中。