7

一部を並べ替えたいリンクリストがあります。たとえば、次のようになります。

std::sort(someIterator, otherIterator, predicate);

std::sort はランダム アクセス イテレータを必要とするため、このアプローチは機能しません。特殊化 std::list::sort がありますが、それはリスト全体をソートすることしかできません。リストメンバーに自分で何かを書くのに十分なアクセス権があるとは思いません。

たとえば、ベクトルに変更せずにこれを行う方法はありますか?

4

2 に答える 2

12

ソートしたいリストの部分を独立したリストにアンフックしてから、特殊なリストソートを使用してから元のリストにフックして戻すのはどうですか?

于 2008-10-19T23:37:51.690 に答える
2

はい。ただし、マージ ソートを使用する必要があります。

于 2008-10-19T22:40:09.060 に答える