partial_sort()分为partial_sort()和partial_sort_copy()两种函数。
partial_sort()排序函数主要用在非常大的容器筛选最大或者最小值来使用,例如:容器A有100万个元素,需要找出最大或者最小的10个元素,这时候就需要用到partial_sort()和partial_sort_copy()两种函数。
partial_sort() 重新调整容器元素顺序,达到选出最大值或者最小值的目的;partial_sort_copy() 通过复制出最大值或者最小值的方式来达到目的;具体代码请参考下面Demo。

本文作者原创,转载请附上文章出处与本文链接。
partial_sort()排序函数用法详解目录
partial_sort() 和 partial_sort_copy() 函数都位于 <algorithm> 头文件中,因此在使用这 2 个函数之前,程序中应引入此头文件:
#include <algorithm>
1 partial_sort()排序函数
一个函数的功能往往可以从它的函数名中体现出来,以 partial_sort() 函数为例,partial sort 可直译为“部分排序”。partial_sort() 函数的功能确是如此,即该函数可以从指定区域中提取出部分数据,并对它们进行排序。
但“部分排序”仅仅是对 partial_sort() 函数功能的一个概括,如果想彻底搞清楚它的功能,需要结合该函数的语法格式。partial_sort() 函数有 2 种用法,其语法格式分别为:
//按照默认的升序排序规则,对 [first, last) 范围的数据进行筛选并排序
void partial_sort (RandomAccessIterator first,
RandomAccessIterator middle,
RandomAccessIterator last);
//按照 comp 排序规则,对 [first, last) 范围的数据进行筛选并排序
void partial_sort (RandomAccessIterator first,
RandomAccessIterator middle,
RandomAccessIterator last,
Compare comp);
其中,first、middle 和 last 都是随机访问迭代器,comp 参数用于自定义排序规则。
partial_sort() 函数会以交换元素存储位置的方式实现部分排序的。具体来说,partial_sort() 会将 [first, last) 范围内最小(或最大)的 middle-first 个元素移动到 [first, middle) 区域中,并对这部分元素做升序(或降序)排序。<

最低0.47元/天 解锁文章
673

被折叠的 条评论
为什么被折叠?



