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 <= $