gpt4 book ai didi

c++ - C++ unordered_map 的 rehash() 和 reserve() 方法有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:00 28 4
gpt4 key购买 nike

C++ unordered_maprehash()reserve() 方法有什么区别?为什么需要两种不同的方法?

最佳答案

区别在于目的,尽管两者都在做类似的事情。

  • rehash 获取现有映射并重建大小的桶,在此过程中重新哈希并将元素重新分配到新桶中。

  • reserve 向您保证,如果您插入的元素数量不超过保留数量,则不会进行重新散列(即您的迭代器将保持有效)。

尽管相关,但这是两个有些不同的事情。 rehash 不给你任何保证,reserve 不表达重新散列的目的。如果您认为您的 map 效率低下,请使用 rehash,如果您准备进行大量插入,请使用 reserve

正如@Xeo 指出的那样,reserve 只是rehash 的包装器,不过,考虑到 map 的允许负载系数。

关于c++ - C++ unordered_map 的 rehash() 和 reserve() 方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14851249/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com