【C++】n_Elementの使い方

813 ワード

n_Element関数はヘッダファイルincludeに定義され、使用方法は次のとおりです.
n_element(v.begin(), v.begin() + k, v.end()); 
vソート後にv[k]が格納すべき値がv[k]であると仮定すると、n_Element関数の役割は,v[k]という値をv[k]に置き,v[k]の左側の数をv[k]より小さくし,v[k]の右側の数をv[k]より大きくすることである.しかし、彼らが秩序正しくあることは保証されていません.(すなわち、v[k]にはk+1番目の大きな数が格納され、左の数はいずれも彼の小さい右の数よりも大きい.例えば、k=1を仮定すると、v[1]で2番目に大きい数に設定されていることを示す)
cmp関数の追加もカスタマイズできます.表示方法は次のとおりです.
n_element(v.begin(), v.begin() + k, v.end(), cmp);
#include 
#include 
#include 
using namespace std;
int main() {
    vector v{5, 6, 4, 3, 2, 6, 7, 9, 3};
    nth_element(v.begin(), v.begin() + v.size()/2, v.end());
    cout << "The median is " << v[v.size()/2] << '
'; }

出力:
The median is 5