头文件
#include <algorithm>
函数声明
template <class RandomAccessIterator, class Compare>
void nth_element (RandomAccessIterator first, //首迭代器
RandomAccessIterator nth, //待寻找元素的迭代器
RandomAccessIterator last, //尾迭代器
Compare comp); //比较规则
用法
一种部分排序算法, 该函数按照一定的比较规则comp, 将区间重排
默认可用于寻找[first, end)区间中第nth小的元素(下标从0开始)。
样例
寻找第2大的数(下标从0开始)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
vector<int> b{4, 7, 6, 9, 1, 8, 2, 3, 5};
nth_element(begin(b), begin(b)+2, end(b),
[](const int a, const int b){ return b < a; });
for(auto i: b){
cout << i << ends;
}
cout << endl;
return 0;
}
输出