我正在尝试找出一种快速数据类型来存储整数对,其中 API 只是add、remove 和 isMember
。考虑到 isMember
必须很快,显而易见的想法是使用 HashMap 。散列函数主要用于无限字符串,因此,我的问题是:考虑到我要散列的只是一对整数,什么是具有良好碰撞特性的快速散列函数?
最佳答案
对于一对int
,你可以去Szudzik's Function .它“优雅地”将两个自然数配对为一个唯一的数字。
既然你提到了int
s,它也可以是负数。在这种情况下,对正-正、正-负、负-正、负-负对使用不同的 HashMap 。
关于c++ - 什么是整数对的快速哈希函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23933227/