Мне было интересно, почему стандарт С++ требует, чтобы 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
?