在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]还不存在?
我听说,尝试用不存在的键访问无序映射会在无序映射中创建该键,但在这种情况下,如果myUMap[5]不存在,这个插入会正确运行以插入它吗?或者,如果它存在,会更新其中的myUMap[5]的映射吗?
该行在内部解析为:
(myUMap.operator[](5)).insert(......);
其中评估的顺序是从左到右。
因此,首先在myUMap
上调用operator[](5)
,如果元素还没有出现在映射中,它将创建一个元素。因此,最终将插入到已创建的元素中。
相关文章:
- 在c++中多次调用方法
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 接收字符串并使用它来调用方法C++
- 使用 gmock c++ 在真实对象上调用方法
- 不带预处理器的调用方法/文件的文件名/行号
- JNI从Android调用C++方法
- 在 C++ 的 Switch Case 中创建对象后对对象调用方法
- 如何使用接口指针调用方法,该指针是其具体类的一部分,而不是接口的一部分
- 从内部类中的方法从包含类调用方法
- 在销毁期间从另一个线程调用对象上调用方法是否未定义行为?
- 为什么派生类的实例从基类调用方法?
- 实例化对象并调用方法,使用单行语法在 C# 或 C++ 中返回值?
- C++当您取消引用指向类对象的指针,然后将其作为引用返回时,是否可以对此引用调用方法
- 通过模板函数对未知类型调用方法
- 从基于迭代器的for循环转换后,如何在map::find()中调用方法
- 创建一个C++DLL以从C#DLL调用方法
- 如何从qt中的类中调用方法
- 如何在不迭代的情况下对数组中的每个元素调用方法
- C++11 - 获取编译时的所有类变量,并在没有 Boost 的情况下为它们调用方法
- C ++:如何在不创建对象的情况下在主函数中调用方法