gpt4 book ai didi

c++ - 哈希函数和实现多键 HashMap

转载 作者:搜寻专家 更新时间:2023-10-31 01:12:57 28 4
gpt4 key购买 nike

目标:创建一个 HashMap ,它采用 2 个整数键(使用 unsigned int 转换将指针转换为整数,是的,这有效)并将其映射到单个值。

尝试的解决方案:所以我已经有了一个 HashMap ,它采用单个键并将其成功映射到值。我现在将其扩展为使用 "pairing function" 获取两个 key .所以我使用这两个 key ,使用 Cantor 配对函数将它们配对,然后对这个组合 key 进行哈希处理。

瓶颈:所以两个键的问题是 cantor 配对函数执行乘法,这会导致整数溢出,因此“不会”给我唯一的输出,因为它在数学上应该这样做。

问题:

  1. 我看到很多散列函数都执行乘法运算。整数溢出在散列中是正常现象还是这很糟糕?
  2. 我还想将一个键附加到另一个键上,生成一个新的 64 位整数。像 aaaaaaaabbbbbbbb 然后将它传递给 HashMap 。但我担心这可能会由于浮点表示而导致出现异常数字,如 NaN,这可能很糟糕。
  3. 欢迎提出任何更好的想法。

如果有些地方不清楚,请告诉我。

最佳答案

你可能想看看boost::hash_combine

关于c++ - 哈希函数和实现多键 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13227340/

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