nth_element は、配列内の n 番目の要素をソート順に線形時間で検索できる関数です。
この関数は、配列の左端、ソートされた順序で値を見つける位置への反復子、および配列の右端を取得します。
関数を適用した後、必要な値はイテレータで示された場所に配置され、残りの値はカオス的な順序を取得しますが、n 番目の左側にはそれ以下の値が存在します。同じく右へ。つまり、この関数は要素の本来の順序を壊すものであると理解して
ください。
詳細については、ドキュメント (https://www.cplusplus.com/reference/algorithm/nth_element/) をご覧ください。
例:
ベクトル a = { 4, 0, 3, 9, 2, 1, 8, 5, 6, 7 };
// インデックス 4 の要素を検索します
// 引数の順序に注意してください
nth_element(a.begin(), a.begin() + 4, a.end());
// a = [#, #, #, #, 4, $, $, $, $, $]
// ここで # <= 4 および 4 <= $