c++ - c++ 中 map_instance[key] 与 map_instance.find(key) 的区别

标签 c++ c++11

我有一个 map 定义为

static map<unsigned int, deque<FOO_STRUCT*> > CV_MAP; 

我想知道一种方法是否比另一种更好:

map_instance[key] vs. map_instance.find(key).

最佳答案

map_instance[key]将默认为键 key 构造一个新值如果它不存在。

如,它将调用 deque<FOO_STRUCT*>的构造函数 if key不存在,并返回新建的 deque<FOO_STRUCT*> .

使用 find成员函数不会为给定的键构造一个新值——当键不存在时,它只会返回一个指向 CV_MAP.end() 的迭代器。 .

使用适合您的用例的内容。

关于c++ - c++ 中 map_instance[key] 与 map_instance.find(key) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46517664/

相关文章:

c++ - 如何从 multimap 中删除特定的重复项?

c++ - 为什么符号 malloc、__malloc 和 __libc_malloc 指向相同的代码地址?

c++ - 有没有一种简单的方法来检查 C++ 中的不安全表达式?

c++ - 如何将 void* 转换为 foo* 以符合 C++?

c++ - 有符号的十六进制文字可能吗?

c++ - unique_ptrs 的循环 vector 并为运行时类型调用正确的重载

c++ - Qt以最佳质量调整图像大小

c++ - v4l2 缺少包含,linux vs uapi/linux

c++ - 是否可以为不应编译的表达式表达 static_assert?

c++ - 下溢或上溢的指针会发生什么情况?