在c++unordered_map中对不存在的键调用方法

Calling a method on a non-existing key within a c++ unordered_map

本文关键字:调用 方法 不存在 c++unordered map      更新时间:2023-10-16

快速问题。如果我尝试调用,具体的行为是什么

std::unordered_map<int, std::unordered_map<int, double>> myUMap;
myUMap[5].insert(......);

其中。。。。。。是一对,并且假设myUMap[5]还不存在?

我听说,尝试用不存在的键访问无序映射会在无序映射中创建该键,但在这种情况下,如果myUMap[5]不存在,这个插入会正确运行以插入它吗?或者,如果它存在,会更新其中的myUMap[5]的映射吗?

该行在内部解析为:

(myUMap.operator[](5)).insert(......);

其中评估的顺序是从左到右。

因此,首先在myUMap上调用operator[](5),如果元素还没有出现在映射中,它将创建一个元素。因此,最终将插入到已创建的元素中。