首页 > 解决方案 > 将大对象存储在 unordered_map 中是否效率低下?

问题描述

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

标签: c++

解决方案


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

你怎么知道?只需粗略看一下公共接口,特别注意方法.extract().merge(). 改变元素数量的其他人并不那么明显。


推荐阅读