c++ - 在unordered_map中存储大对象效率低吗?

标签 c++

例如,如果您有 unordered_map 并添加项目,那么当 unordered_map 进行重新哈希时,它实际上是在移动 BigObject 数据还是只是在内部移动指针?使用 unordered_map< int, shared_ptr > 会更好吗?

最佳答案

每个元素都存储在自己的节点中,因此添加/删除元素不会移动现有元素。

你怎么知道的?只需粗略地看一下公共(public)接口(interface),特别注意方法 .extract().merge() 。其他改变元素数量的行为就没那么明显了。

关于c++ - 在unordered_map中存储大对象效率低吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58784783/

相关文章:

C++ 函数初始化和内存泄漏

c++ - <filesystem> header 中固有的安全漏洞有哪些?

c++ - 嵌套并行 for 循环 : "Parallel outer for loop" in "parallel inner for loop as a function"

java - 如何使用 Opencv 将 PNG 从 Java 类传递到 Android 中的 Native 类

c++ - 用不同的值初始化 const 容器的正确方法是什么?

c++ - 有没有办法强制一个程序只使用一个线程?

c++ - 如何在 C++ 中对字符串使用 qsort

c++ - 使用类引用修改另一个类中的公共(public)成员

c++ - 处理 GLUT 中的 Tab 键

c++ - 在构造函数中初始化对矩阵