sta*_*tti 6 c++ unordered-map std data-structures c++11
C++ rehash()和reserve()方法之间有什么区别unordered_map?为什么需要两种不同的方法?
Ker*_* SB 11
差异在于目的,尽管两者都在做类似的事情.
rehash获取现有地图并重建新大小的存储桶,在此过程中重新进行重新分配并将元素重新分配到新存储桶中.
reserve 保证如果你没有插入超过保留数量的元素,就不会有重新散列(即你的迭代器将保持有效).
这些是两个有些不同的东西,尽管是相关的.rehash没有给你任何保证,reserve也没有表达重新加强的目的.使用rehash,如果你认为你的地图是低效的,而且reserve如果你准备了很多插入的.
正如@Xeo指出的那样,reserve只是rehash考虑到地图的允许载荷因子,它只是一个包装器.