zoukankan      html  css  js  c++  java
  • STL部分排序算子使用 partial_sort

    partial_sort 的使用

    partial_sort 是C++ STL 算法组件中的其中一个算法,其作用是对序列局部元素进行排序,默认排序是升序。它有两个重载函数。要使用partial_sort 需要引用头文件 algorithm。

    下面是一个例子:

    #include <iostream>
    #include <vector>//vector
    #include <algorithm>
    #include <time.h> //随机数
    using namespace std;
    
    //自定义排序比较方法,降序
    bool func(int i, int j) { return (i > j); }
    
    void main()
    {
        //定义容器
        vector<int>vec;
        srand(time(0));//随机数
        //赋值
        for (int i = 0; i < 10; i++)
        {
            int num = rand() % 100;
            vec.push_back(num);
        }
    
        //迭代器
        vector<int>::iterator vi;
    
        //输出
        cout << "局部排序前:" << endl;
        for (vi = vec.begin(); vi < vec.end(); vi++) { cout << *vi << '	'; }
        cout << endl;
    
        // 局部排序,默认排序
        partial_sort(vec.begin(), vec.begin() + 5, vec.end());
        // 输出
        cout << "局部排序,排序后:" << endl;
        for (vi = vec.begin(); vi < vec.end(); vi++) { cout << *vi << '	'; }
        cout << endl;
    
        // 全部排序,默认排序
        partial_sort(vec.begin(), vec.end(), vec.end());
        // 输出
        cout << "全部排序后:" << endl;
        for (vi = vec.begin(); vi < vec.end(); vi++) { cout << *vi << '	'; }
        cout << endl;
    
        // 局部排序,自定义排序
        partial_sort(vec.begin(), vec.begin() + 5, vec.end(), func);
        // 输出
        cout << "局部排序,自定义降序:" << endl;
        for (vi = vec.begin(); vi < vec.end(); vi++) { cout << *vi << '	'; }
        cout << endl;
    
        // 全部排序,自定义排序
        partial_sort(vec.begin(), vec.end(), vec.end(), func);
        // 输出
        cout << "全部排序,自定义降序:" << endl;
        for (vi = vec.begin(); vi < vec.end(); vi++) { cout << *vi << '	'; }
        cout << endl;
    }
  • 相关阅读:
    MT【160】格点
    MT【159】单调有界有极限
    c_str() 函数
    C strstr() 函数
    全面总结:matlab怎么做漂亮的图
    程序员电邮札记
    C编译: 使用gdb调试
    C编译: 动态连接库 (.so文件)
    C编译: makefile基础
    数据科学
  • 原文地址:https://www.cnblogs.com/codeAndlearn/p/14230311.html
Copyright © 2011-2022 走看看