Я возился с шаблоном класса unordered_map
, и я хотел бы написать собственный хеш для своего класса.В документации к нему упоминается, что для встроенных типов предусмотрены функции хеширования по умолчанию.Итак, если вы объявляете:
std::tr1::unordered_map<std::string, int> foo;
Вы автоматически получаете хеш-код, определенный для вас.
Здесь приведен хороший пример того, как предоставить функтор, если вам нужна пользовательская хеш-функция.
Однако, что если у меня есть сложный класс, имеющий член std::string
, который я хотел бы использовать в качестве ключа для вставки / удаления в unordered_map
?Я не хочу переписывать свой собственный хеш.Я хочу использовать то, что уже было написано для типа std::string
.