快速提问。如果我尝试致电,确切的行为是什么:
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
,如果该元素还没有出现在地图中,则会创建一个元素。因此,最终插入到已创建的元素中。