У меня есть связанный список, что я хочу, чтобы отсортировать части, например:Частичный вид станд :: Список
std::sort(someIterator, otherIterator, predicate);
станд :: сортировать требует итераторы произвольного доступа, поэтому этот подход не работает. Существует специальность std :: list :: sort, но это может сортировать только весь список. Я не думаю, что у меня достаточно доступа к членам списка, чтобы написать что-то сам.
Есть ли способ сделать это, не меняя, скажем, вектор?
и какова основная причина, по которой вы используете список вместо вектора? Несмотря на то, что std :: vector должен выполнять перемещение по avg. половина элементов (например, при удалении), это очень быстро благодаря кешу. std :: vector beats std :: list даже при частом удалении и вставке на rand. позиция Вы должны иметь очень большое количество элементов для получения прибыли, используя список. – relaxxx
Ну, честно говоря, я не помню, потому что через три с половиной года с тех пор, как я спросил, я почти уверен, что он каким-то образом переделан, и я уже давно оставил эту работу. Суть вопроса заключалась не столько в эффективности (хотя есть справедливая вероятность того, что было достаточно данных, которые я бы не хотел дублировать все это на лету), но больше просто любопытство; казалось странным, что я, похоже, не мог сделать этот частичный сорт и что должен быть какой-то способ его достижения. – Peter
oh: D мой плохой ... Я наткнулся на этот вопрос через поиск не через «страницу активных вопросов» и не осознавал этого :) Я действительно думал, что это активный вопрос. – relaxxx