Для использования класса в качестве ключа в 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
Register or sign in to get access to full answers for all questions from the question bank.