2

所以,简单的问题,因为我有一个脑死的时刻.. 我怎样才能覆盖/替换std::hash<std::string>使用谷歌的城市哈希?

我目前的方法是有一个包装器std::string,然后专门std::hash<>针对它。但这很痛苦,因为我必须实现几乎相同的接口,std::string并且我想避免这种情况。

4

1 回答 1

5

您不能替换任何现有的专业化,即,您不能替换std::hash<std::string>. 但是,您可以对容器使用不同的散列函数对象std::unordered_*,例如:

std::unordered_map<std::string, T, my_hash> hash_map;
于 2014-06-20T15:30:31.623 回答