Итак, достаточно простой вопрос, так как у меня мертвый момент мозга. Как я могу переопределить / заменить std::hash<std::string>
использовать Google City Hash?
Мой нынешний подход заключается в том, чтобы иметь обертку вокруг std::string
а затем специализироваться std::hash<>
для этого. Но это больно, так как я должен реализовать практически тот же интерфейс, что и std::string
и я хочу избежать этого.
Вы не можете заменить любые существующие специализации, то есть вы не можете заменить std::hash<std::string>
, Тем не менее, вы Можно использовать различные объекты хэш-функции с std::unordered_*
контейнеры, например:
std::unordered_map<std::string, T, my_hash> hash_map;