Предполагается, что для карты создается компаратор по умолчанию (т. Е. Как map<Key,Value>
без третьего аргумента):
- Встроенные числовые типы
- Указатели
- Любой тип, для которого
std::less<Key>
специализирован (если специализация не требует operator<
). - Педантично, любой тип, который уже имеет перегрузку
operator<
.
Для любого другого типа ключа карта попытается сравнить их, используя выражение типа key1 < key2
, которое будет компилироваться только при наличии перегрузки operator<
для типа ключа.