zoukankan      html  css  js  c++  java
  • C++ STL 常用排序算法

    C++ STL 常用排序算法

    merge()

    以下是排序和通用算法:提供元素排序策略
    merge: 合并两个有序序列,存放到另一个序列。

    例如:

    vecIntA,vecIntB,vecIntC是用vector<int>声明的容器,
    vecIntA已包含1,3,5,7,9元素,
    vecIntB已包含2,4,6,8元素
    vecIntC.resize(9); //扩大容量
    merge(vecIntA.begin(),vecIntA.end(),vecIntB.begin(),vecIntB.end(),vecIntC.begin());
    此时vecIntC就存放了按顺序的1,2,3,4,5,6,7,8,9九个元素

    sort()

    sort: 以默认升序的方式重新排列指定范围内的元素。若要改排序规则,可以输入比较函数。

    //学生类
    Class CStudent:
    {
    public:
           CStudent(int iID, string strName)
           {
                  m_iID=iID;
                  m_strName=strName;
           }
    public:
           int m_iID;
           string m_strName;
    }

    //学号比较函数
    bool Compare(const CStudent &stuA,const CStudent &stuB)
    {
           return (stuA.m_iID<strB.m_iID);
    }

    void main()
    {
           vector<CStudent> vecStu;
           vecStu.push_back(CStudent(2,"老二"));
           vecStu.push_back(CStudent(1,"老大"));
           vecStu.push_back(CStudent(3,"老三"));
           vecStu.push_back(CStudent(4,"老四"));
           sort(vecStu.begin(),vecStu.end(),Compare); // 此时,vecStu容器包含了按顺序的"老大对象","老二对象","老三对象","老四对象"
    }

    random_shuffle()

    random_shuffle: 对指定范围内的元素随机调整次序。
    srand(time(0)); //设置随机种子

    vector<int> vecInt;
    vecInt.push_back(1);
    vecInt.push_back(3);
    vecInt.push_back(5);
    vecInt.push_back(7);
    vecInt.push_back(9);

    string str("itcastitcast ");
    random_shuffle(vecInt.begin(), vecInt.end()); //随机排序,结果比如:9,7,1,5,3
    random_shuffle(str.begin(), str.end()); //随机排序,结果比如:" itstcasticat "

    reverse()  逆序

    vector<int> vecInt;
    vecInt.push_back(1);
    vecInt.push_back(3);
    vecInt.push_back(5);
    vecInt.push_back(7);
    vecInt.push_back(9);
    reverse(vecInt.begin(), vecInt.end()); //{9,7,5,3,1}

  • 相关阅读:
    服务端主动关闭 time_wait
    告别Excel!别人家高大上的财务数据分析,这才是老板的最爱
    客户端主动关闭,timed_wait
    两千字揭密 MySQL 8.0.19 三大索引新功能:隐藏索引,降序索引,函数索引
    零基础入门深度学习(3)
    零基础入门深度学习(3)
    零基础入门深度学习(3)
    android 动画学习总结
    android 动画学习总结
    android 动画学习总结
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/7793394.html
Copyright © 2011-2022 走看看