#define debug qDebug()<<
int main(int argc, char *argv[])
{
QVector<int> vec{3,2,5,1,6,9,4,7};
std::nth_element(vec.begin(), vec.begin() + 4, vec.end());
debug vec;
}
要对序列进行完全排序是这样的:
nth_element()保证:
1、*(vec.begin() + 4) = 5
2、vec.begin ~ (vec.begin + 3) 的值都小于5,但它们内部不保证有序
3、vec.begin() + 4后面的值都大于5,但也不保证有序
还有自定义排序规则的版本,不赘述。