c++ - 什么是整数对的快速哈希函数?

标签 c++ algorithm hash

我正在尝试找出一种快速数据类型来存储整数对,其中 API 只是add、remove 和 isMember。考虑到 isMember 必须很快,显而易见的想法是使用 HashMap 。散列函数主要用于无限字符串,因此,我的问题是:考虑到我要散列的只是一对整数,什么是具有良好碰撞特性的快速散列函数?

最佳答案

对于一对int,你可以去Szudzik's Function .它“优雅地”将两个自然数配对为一个唯一的数字。

既然你提到了ints,它也可以是负数。在这种情况下,对正-正、正-负、负-正、负-负对使用不同的 HashMap 。

关于c++ - 什么是整数对的快速哈希函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23933227/

相关文章:

c++ - STL RBTree 是有序迭代 O(N ln N) 吗?

java - 如何将 MessageDigest 内部状态保存到数据库中?

passwords - 多个密码哈希

c++ - 从 C++ 到 Swift 的 CoreAudio 东西

algorithm - 最大数量的数字避免他们的一些组合

c++ - 在没有开销的情况下实现push_back的最佳方法是什么

c++ - 如何在 C++ 中进行 32 位十进制 float 乘法?

python - python中最短的哈希来命名缓存文件

c++ - 链接到 Qt 中的共享库

使用 clang/llvm 的 C++ 精确垃圾收集器?