如何避免在插入期间延迟调整unordered_map的大小

时间:2012-07-25 17:57:18

标签: c++ performance visual-c++ hashmap unordered-map

我在MSVC 2010中使用 unordered_map 。如果我在其中插入了许多元素,它就会开始调整大小。在此过程中,它会复制所有对并重新散列它们。当对象太多时,需要花费太多时间。有没有提示如何避免这种影响?类似保留的东西,但它没有在VS 2010中实现

2 个答案:

答案 0 :(得分:3)

使用rehash代替?它看起来像reserve

答案 1 :(得分:2)

如果您事先知道要添加多少元素,则可以使用explicit unordered_map( size_type nbuckets = N0, const Hash& hfn = Hash(), const Pred& comp = Pred(), const Alloc& al = Alloc())创建unordered_map,并将某些内容传递为nbucketsmsdn)。