Для использования класса в качестве ключа в std::unordered_map
необходимо:
==
для сравнения экземпляров вашего класса на равенство. unordered_map
использует его для проверки на наличие ключа.unordered_map
использует ее для вычисления хэша ключа и определения корзины, в которую поместить элемент. Стандартная библиотека предоставляет std::hash
для базовых типов. Для пользовательских классов можно либо перегрузить шаблон std::hash
, либо предоставить собственную функцию/функитор и передать ее как третий аргумент шаблона unordered_map
.Пример:
cpp
Для использования класса в качестве ключа в std::unordered_map
необходимо:
==
для сравнения экземпляров вашего класса на равенство. unordered_map
использует его для проверки на наличие ключа.unordered_map
использует ее для вычисления хэша ключа и определения корзины, в которую поместить элемент. Стандартная библиотека предоставляет std::hash
для базовых типов. Для пользовательских классов можно либо перегрузить шаблон std::hash
, либо предоставить собственную функцию/функитор и передать ее как третий аргумент шаблона unordered_map
.Пример:
cpp
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.