std::nth_element 是 C++ 标准库中的一个算法,用于部分排序一个范围内的元素,使得第 n 个元素位于其排序位置上,同时保证所有小于第 n 个元素的值都出现在它的左边,所有大于第 n 个元素的值都出现在它的右边。这个操作通常用于寻找一个序列中的中位数或第 k 个最小/最大的元素。
函数签名
cpp
深色版本
1template< class RandomAccessIterator, class Compare >
2void nth_element( RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last, Compare comp );
3
4template< class RandomAccessIterator >
5void nth_element( RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last );
参数说明
RandomAccessIterator first:指向要排序的范围的第一个元素的迭代器。
RandomAccessIterator nth:指向要放置在正确排序位置上的元素的迭代器。
RandomAccessIterator last:指向要排序的范围的最后一个元素之后的一个迭代器。
Compare comp:一个比较谓词,用于定义元素之间的比较规则。默认情况下使用 < 操作符。
返回值
std::nth_element 不返回任何值,但它会修改输入范围内的元素。
功能描述
std::nth_element 的主要功能是部分排序一个范围内的元素,使得第 nth 个元素(即从 first 开始的第 n 个元素)被放置在其正确的排序位置上。同时,该函数还会确保所有小于第 nth 个元素的值都在它的左侧,所有大于第 nth 个元素的值都在它的右侧。