Для хранения пользовательской структуры в std::map необходимо выполнить несколько шагов:
Перегрузить оператор < для вашей структуры. std::map использует этот оператор для сравнения ключей и поддержания отсортированного порядка.
c
Убедиться, что перегруженный оператор < обеспечивает строгий слабый порядок (strict weak ordering). Это означает, что для любых элементов a, b, c:
!(a < a)a < b, то !(b < a)a < b и b < c, то a < c!(a < b) и !(b < a), то a и b эквивалентны. Объекты, которые эквивалентны, могут считаться одинаковыми ключами в map.Альтернативно, можно предоставить пользовательский функтор сравнения при объявлении std::map.
c
Убедиться, что структура поддерживает копирование или перемещение (обычно дефолтные конструкторы копирования/перемещения и операторы присваивания достаточны, если члены структуры поддерживают это).
После выполнения этих шагов, вы сможете использовать вашу структуру в качестве ключа в std::map.