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;
    }
  • 相关阅读:
    初学flask
    第一次使用pyqt5解决的几个小问题
    一些细节
    关于random
    go语言 方法
    go 语言 struct 另类构造函数 继承
    go 语言 链表 的增删改查
    go 语言 链表
    go 语言struct
    无题
  • 原文地址:https://www.cnblogs.com/codeAndlearn/p/14230311.html
Copyright © 2011-2022 走看看