Middle
25
0
questionbank

Что необходимо сделать с классом, чтобы его можно было использовать в качестве ключа в std::map или std::unordered_map?

Answer from sobes.tech neural network

Чтобы класс MyClass можно было использовать как ключ в std::map<MyClass, ValueType> и std::unordered_map<MyClass, ValueType>, необходимо:

Для std::map:

  1. Определить оператор < как нестатический член или свободную функцию.

    cpp

Для std::unordered_map:

  1. Определить функтор хеширования (hash function) для MyClass.

  2. Определить оператор == для сравнения на равенство.

    cpp

Чтобы класс MyClass можно было использовать как ключ в std::map<MyClass, ValueType> и std::unordered_map<MyClass, ValueType>, необходимо:

Для std::map:

  1. Определить оператор < как нестатический член или свободную функцию.

    cpp

Для std::unordered_map:

  1. Определить функтор хеширования (hash function) для MyClass.

  2. Определить оператор == для сравнения на равенство.

    cpp

Register or sign in to get access to full answers for all questions from the question bank.

stlmapunordered-mapcomparisonhashingcustom-typesc++