Как std :: map отображает пару как ключ к ее значению без функции сравнения

Если мы используем структуру или класс в качестве ключа, то для размещения значений в дереве требуется функция сравнения, но если в качестве ключа используется пара, то как структура данных карты размещает значения в дереве. То есть должно быть что-то, чтобы сравнить ключи и сохранить их в дереве.

1

Решение

Функция сравнения по умолчанию для std::map является std::less используя тип Key для аргументов. std::less просто вызывает < оператор по своим аргументам, который определен для std::pair (это сравнивает first а также second лексикографически, используя их operator<).

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]