我为我的情况定义了以下哈希函数,其中作为键我有两个整数。这是我的代码:
typedef std::tuple<int, int> key_t;
struct KeyHasher
{
std::size_t operator()(const key_t& k) const
{
using std::size_t;
using std::hash;
return ((hash<int>()(std::get<0>(k))
^ (hash<int>()(std::get<1>(k)) << 1)));
}
};
我希望结果在使用键搜索时更快,但执行时间似乎非常慢。如果我可以为我的无序地图制作这个散列函数比上面的更好,请指导我。(我有超过2000000个条目)
P.S:我必须创建另一个带有两个无符号字符的unordered_map作为键。我可以为它们定义相同类型的哈希函数,并将类型更改为unsigned char吗?