快速提问。如果我尝试致电,确切的行为是什么:

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(......);


评估顺序从左到右。

因此,您首先在operator[](5)上调用myUMap,如果该元素还没有出现在地图中,则会创建一个元素。因此,最终插入到已创建的元素中。

10-07 15:34