良い一日!
彼の「効果的なSTL」で、スコット・マイヤーズは書いた
3 つ目は、反復子の順序付けられたコンテナー内の情報を使用して、リストの要素を配置したい位置に反復的に接合することです。ご覧のとおり、多くのオプションがあります。(項目 31、後編)
誰かが私にこのように説明できますか?
追加テキスト (コンテキストを理解するため):
アルゴリズム sort、stable_sort、partial_sort、および nth_element はランダム アクセス反復子を必要とするため、ベクトル、文字列、両端キュー、および配列にのみ適用できます。標準の連想コンテナで要素を並べ替えても意味がありません。そのようなコンテナは比較関数を使用して常に並べ替えられた状態を維持するためです。sort、stable_sort、partial_sort、または nth_element を使用したいが使用できない唯一のコンテナーは list であり、list はその sort メンバー関数を提供することで多少補償します。(興味深いことに、list::sort は安定した並べ替えを実行します。) リストを並べ替えたい場合はできますが、リスト内のオブジェクトに対して partial_sort または nth_element を使用したい場合は、間接的に行う必要があります。間接的なアプローチの 1 つは、ランダム アクセス イテレータを使用して要素をコンテナーにコピーし、目的のアルゴリズムをそれに適用することです。3 つ目は、反復子の順序付けられたコンテナー内の情報を使用して、リストの要素を配置したい位置に反復的に接合することです。ご覧のとおり、多くのオプションがあります。