gpt4 book ai didi

c++ - 如果我知道映射键的预期数量,我应该使用什么 bucket_count 值?

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

我正在创建一个 std::unordered_map,我将立即着手填充 n 个键值对 - 我知道 n。之后将不再添加元素 - 我将只执行查找。

因此,我应该将什么作为 bucket_count 传递给构造函数?

注意事项:

最佳答案

根据 n4296在 23.5.4.2 [unord.map.cnstr](这是 C++14 的最终草案)默认情况下,unordered_mapmax_load_factor 为 1.0,因此您可以将 bucket_count 设置为 n

在增加桶数以提高速度和减少桶数(并提高最大负载因子)以改善空间之间显然存在时空权衡。

我要么不担心它,要么如果它是一个 map ,将桶计数设置为n。然后,当分析显示您有问题时,您可以担心优化问题。

如果您知道所需的负载因子范围,则只需将桶计数设置为 std::ceil(n/(std::max(f_1,f_2)),(和在填充 map 之前设置加载因子)。

关于c++ - 如果我知道映射键的预期数量,我应该使用什么 bucket_count 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41182679/

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