gpt4 book ai didi

c++ - C++ 中是否有任何函数可以计算保证至少 64 位宽的字符串的指纹或散列?

转载 作者:搜寻专家 更新时间:2023-10-31 00:06:02 26 4
gpt4 key购买 nike

C++ 中是否有任何函数可以计算保证至少 64 位宽的字符串的指纹或哈希值?

我想更换我的 unordered_map<string, int>unordered_map<long long, int> .

鉴于我得到的答案(感谢 Stack Overflow 社区...),我描述的技术并不为人所知。我想要一个无序的指纹图而不是字符串的原因是为了空间和速度。第二个映射不必存储字符串,并且在进行查找时,它不会导致任何额外的缓存未命中来获取这些字符串。唯一的缺点是碰撞的可能性很小。这就是 key 必须是 64 位的原因:2^(-64) 的概率基本上是不可能的。当然,这是基于一个好的哈希函数,这正是我的问题所寻求的。

再次感谢 Stack Overflowers。

最佳答案

unordered_map 总是将键散列到一个 size_t 变量中。这与 key 类型无关,仅取决于您使用的架构。

关于c++ - C++ 中是否有任何函数可以计算保证至少 64 位宽的字符串的指纹或散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/908227/

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