包含12个整数的自定义数据结构所需的散列函数

时间:2016-03-06 20:08:00

标签: c++11 hash hashcode unordered-set custom-data-type

我有一个自定义结构,包含12个整数值,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6。

数字的范围在1到5之间,并且每个结构都保证具有不同的组合,即 NO 两个结构可以具有x1,y1,x2,y2,x3的所有值, y3,x4,y4,x5,y5,x6,y6与其他值相同。

我需要一个好的哈希函数来执行O(1)操作。

要求是找出具有特定x1,y1 ...... x6,y6值的结构

现在我正在使用以下内容: -

struct Hash_6
{
size_t operator () ( const Node& n ) const
{

        int result=17;
        result=31*result+n.x1;
        result=31*result+n.x2;
        result=31*result+n.x3;
        result=31*result+n.x4;
        result=31*result+n.x5;
        result=31*result+n.x6;
        result=31*result+n.y1;
        result=31*result+n.y2;
        result=31*result+n.y3;
        result=31*result+n.y4;
        result=31*result+n.y5;
        result=31*result+n.y6;
        return result;
}
};

我想知道是否有更好的更有效的哈希函数,我可以用于这个特定的情况。

0 个答案:

没有答案