1、partial_sort()
对部分个数元素进行排序并移到序列前面。
#define debug qDebug()<<
int main(int argc, char *argv[])
{
QVector<int> vec{ 3,2,5,4,1,6,9,7};
std::partial_sort(vec.begin(), vec.begin() + 4, vec.end());
debug vec;
}
默认是升序排列,可以理解为从整个序列取出了最小的4个数放到最前面,剩下的保持着相对的顺序不变。
还有自定义排序规则的版本,不缀诉。
2、partial_sort_copy()
部分排序后不影响原序列,将部分排序的结果复制到另一个序列
#define debug qDebug()<<
int main(int argc, char *argv[])
{
QVector<int> vec{3,2,5,4,1,6,9,7};
QVector<int> vec2;
vec2.resize(7);
std::partial_sort_copy(vec.begin(), vec.begin() + 7,vec2.begin(),vec2.end());
debug vec2;
}
相对于取出前面7个数进行了排序,并将排序结果复制到另一个序列。
还有自定义排序规则的版本,不赘述。