所以,简单的问题是因为我有一个脑死亡的时刻..我如何覆盖/替换std::hash<std::string>
以使用Google的城市哈希?
我目前的方法是在std::string
周围设置一个包装,然后专门设置std::hash<>
。但这很痛苦,因为我必须实现与std::string
几乎相同的界面,我想避免这种情况。
答案 0 :(得分:5)
您无法替换任何现有的专精,即您无法替换std::hash<std::string>
。但是,可以使用与std::unordered_*
容器不同的散列函数对象,例如:
std::unordered_map<std::string, T, my_hash> hash_map;