标签: c++ performance visual-c++ hashmap unordered-map
我在MSVC 2010中使用 unordered_map 。如果我在其中插入了许多元素,它就会开始调整大小。在此过程中,它会复制所有对并重新散列它们。当对象太多时,需要花费太多时间。有没有提示如何避免这种影响?类似保留的东西,但它没有在VS 2010中实现
答案 0 :(得分:3)
使用rehash代替?它看起来像reserve
reserve
答案 1 :(得分:2)
如果您事先知道要添加多少元素,则可以使用explicit unordered_map( size_type nbuckets = N0, const Hash& hfn = Hash(), const Pred& comp = Pred(), const Alloc& al = Alloc())创建unordered_map,并将某些内容传递为nbuckets(msdn)。
explicit unordered_map( size_type nbuckets = N0, const Hash& hfn = Hash(), const Pred& comp = Pred(), const Alloc& al = Alloc())
nbuckets