Стандартный класс std:: list
имеет двунаправленные итераторы, которые не имеют operator <
, в то время как std::vector
имеет итераторы прямого доступа, для которых определен operator <
.
Этот operator <
используется дляупорядочение данных в std::map
, потому что по умолчанию используется объект функции std::less
.
Вот объявление шаблона класса std :: map
template<class Key, class T, class Compare = less<Key>,
class Allocator = allocator<pair<const Key, T>>>
class map;