快问。如果我尝试致电,确切的行为是什么:
std::unordered_map<int, std::unordered_map<int, double>> myUMap;
myUMap[5].insert(......);
Run Code Online (Sandbox Code Playgroud)
其中 ...... 是一对,并假设 myUMap[5] 还不存在?
我听说尝试使用不存在的键访问 unordered_map 会以这种方式在无序映射中创建该键,但在这种情况下,如果 myUMap[5] 不存在,或者如果确实如此,更新 myUMap[5] 中的地图?
该行在内部解析为:
(myUMap.operator[](5)).insert(......);
Run Code Online (Sandbox Code Playgroud)
其中评估顺序是从左到右。
因此,您首先调用operator[](5)on myUMap,如果地图中尚不存在该元素,它会创建一个元素。因此,您最终会插入到已创建的元素中。