大佬教程收集整理的这篇文章主要介绍了C++ partial_sort(STL partial_sort)排序算法详解,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
size_t count {5}; // number of elements to be sorted std::vector<int> numbers {22,7,93,45,19,56,88,12,8,15,10}; std::partial_sort(std::begin(numbers),std::begin(numbers) + count,std::end(numbers));执行partial__sort()后的效果如图 1 所示。
std::partial_sort(std::begin(numbers),std:: end (numbers),std::greater<>());现在,number 中最大的 count 个元素会是容器开始处的一个降序序列。在此系统上这条语句的输出结果为:
93 88 56 45 22 7 19 12 8 7 15 10
同样,没有保持 numbers 中未排序元素的原始顺序。std::vector<int> numbers {22,10}; size_t count {5}; // number of elements to be sorted std::vector<int> result(count); // DesTination for the results 一 count elements std::partial_sort_copy(std::begin(numbers),std::end(numbers),std::begin (result),std::end (result)); std::copy(std::begin(numbers),std::ostream_iterator<int>{std::cout," " }); std::cout << std::endl; std::copy(std::begin(result),std::end(result),std::ostream_iterator <int> {std::cout," "}); std::cout << std::endl这些语句实现了对 numbers 容器的部分排序。这个想法是先对 numbers 中最小的 count 个元素排序,然后把它们保存在结果容器中。我们指定的用于存放元素的目的位置必须存在,也就是说,目的容器 result 必须至少有 count 个元素,在这个示例中我们需要分配准确数目的内存。执行这段代码后的输出如下:
22 7 93 45 19 56 88 12 8 7 15 10
7 7 8 10 12
std::partial_sort_copy(std::begin(numbers),std::begin(result),std::greatero());指定一个 greater<> 的实例作为函数对象,将最大的 count 个元素以降序的形式复制到 result 中。如果这条语句后跟的是前一个代码段中的输出语句,会输出如下内容:
22 7 93 45 19 56 88 12 8 7 15 10
93 88 56 45 22
以上是大佬教程为你收集整理的C++ partial_sort(STL partial_sort)排序算法详解全部内容,希望文章能够帮你解决C++ partial_sort(STL partial_sort)排序算法详解所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。