とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

std::nth_element

STL―標準テンプレートライブラリによるC++プログラミング 第2版

// P108 ex05-23.cpp
#include<iostream>
#include<vector>
#include<algorithm>
#include<cassert>
int main(){
 using std::cout;
 using std::endl;
 using std::vector;
 using std::nth_element;
 cout << "Illustrating the generic nth_element algorithm." << endl;
 const int a[] = {25, 7, 9, 2, 0, 5, 2};
 const int SIZE = sizeof a / sizeof *a;
 vector<int> v(a, a + SIZE);
 const int N = SIZE / 2;

 nth_element(v.begin(), v.begin() + N, v.end());
 for(int i = 0; i < N; ++i)
  assert(v[i] <= v[N]);
 for(int i = N + 1; i < SIZE; ++i)
  assert(v[i] >= v[N]);
 cout << " --- Ok." << endl;
}