#c #list #iterator
Вопрос:
Как преобразовать эту функцию в функцию, которая сортирует список a
на месте? В настоящее время у меня есть следующее:
template<typename Iterator>
void LISTsort(Iterator curr, Iterator stop)
{
//how to sort in place
}
Я не смог обвести вокруг пальца свою голову о том, как «вернуть» значения обратно в list a
. Я знаю, что могу использовать цикл while и заменять каждого отдельного *curr
и увеличивать итератор. Есть ли какой-нибудь способ сделать это без использования каких-либо циклов?.
Комментарии:
1. что не так с петлями?
2. P.S. это не сортировка на месте.
3. как насчет того, чтобы позвонить
std::list::sort
?
Ответ №1:
std::list
имеет функцию-член для сортировки. Это называется sort
.
Есть ли какой-нибудь способ сделать это без использования каких-либо циклов?.
Единственный способ сортировки без использования циклов (рекурсивных или итеративных) — ограничить размер входных данных константой.
Комментарии:
1. мой плохой, я не знал, что в списке есть функция сортировки
2. @JayEstrera извините, что придираюсь к этому, но ваша ошибка заключалась не в том, что вы не знали о его существовании, проблема заключалась в том, что вы не просмотрели документацию
std::list
, чтобы найти его (я тоже этого не знал, но мне пришлось ее поискать)