Middle+
24
0
questionbank

Что нужно сделать, чтобы использовать свой класс в качестве ключа в map или unordered_map?

Ответ от нейросети sobes.tech

Для std::map:

Необходимо определить оператор сравнения < для вашего класса.

c

Для std::unordered_map:

Необходимо определить функцию хеширования (хешер) для вашего класса и, если необходимо, оператор сравнения на равенство ==. Стандартный хешер std::hash не умеет хешировать пользовательские типы.

Способы определения хешера:

  1. Перегрузка std::hash в пространстве имен std (не рекомендуется):

    c

Для std::map:

Необходимо определить оператор сравнения < для вашего класса.

c

Для std::unordered_map:

Необходимо определить функцию хеширования (хешер) для вашего класса и, если необходимо, оператор сравнения на равенство ==. Стандартный хешер std::hash не умеет хешировать пользовательские типы.

Способы определения хешера:

  1. Перегрузка std::hash в пространстве имен std (не рекомендуется):

    c

Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.

hashequalitycustom-classesdata-structuresperformance-considerations