Мне было интересно, почему стандарт С++ требует, чтобы std::sort должен использовать только итераторы с произвольным доступом? Я не вижу преимущества, поскольку std:: sort и std:: list:: sort имеют сложность N*log(N). Ограничение std::sort для итераторов с произвольным доступом (RAI), по-видимому, потребовало записи отдельной функции для списков с одинаковой сложностью.
То же самое относится к partial_sort, где счетчик-не-RAI для списка просто отсутствует по сей день.
Эта конструкция, потому что люди использовали варианты quick_sort для реализации std::sort исторически?
Если есть преимущества для написания алгоритмов сортировки на контейнерах RAI, лучше ли сделать std::sort более общим, и пусть контейнеры RAI, такие как std::vector, предоставляют специализированные v.sort?