例如,如果您有 unordered_map 并添加项目,那么当 unordered_map 进行重新哈希时,它实际上是在移动 BigObject 数据还是只是在内部移动指针?使用 unordered_map< int, shared_ptr > 会更好吗?
最佳答案
每个元素都存储在自己的节点中,因此添加/删除元素不会移动现有元素。
你怎么知道的?只需粗略地看一下公共(public)接口(interface),特别注意方法 .extract()
和 .merge()
。其他改变元素数量的行为就没那么明显了。
关于c++ - 在unordered_map中存储大对象效率低吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58784783/