使用两个正整数做map的Key:
struct FTwoIntAsKey
{
int A;
int B;
}
这时候要写这个结构体对应的HashCode函数
size_t HashCode(FTwoIntAsKey k)
{
size_t sum = k.A + k.b;
return sum * (sum + 1) / 2 + k.A;
}
这样即可生成这个整数对的唯一hashcode。(1,2)和(2,1) 的hashcode是不一样的。
扩展:
其实如果对A,B的值不care只是想用整数对做key的话 可以直接用Hashcode的结果(size_t)做key这样在查找的时候可以加速查找(省去一次hash的过程)。当然存入数据的时候效率是一样的。