zoukankan      html  css  js  c++  java
  • STL_算法_对全部元素排序(sort、stable_sort)

    C++ Primer 学习中。

     

    简单记录下我的学习过程 (代码为主)


    //大部分容器适用、不适用于list容器
    sort(b,e)
    sort(b,e,p)
    stable_sort(b,e)
    stable_sort(b,e,p)


    /**------http://blog.csdn.net/u010579068------**/
    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<vector>
    #include<list>
    #include<deque>
    #include<algorithm>
    using namespace std;
    
    /*****************************************
    //大部分容器适用、不适用于list容器
    sort(b,e)
    sort(b,e,p)
    stable_sort(b,e)
    stable_sort(b,e,p)
    *****************************************/
    /**----------------------------------------------------------------------------------
    注意:不适用于list容器,list有成员函数sort()
    ----------------------------------------------------------------------------------**/
    /*************************************************************************************
    std::sort                     全部排序容器适用                           algorithm
    --------------------------------------------------------------------------------------
    template <class RandomAccessIterator>
      void sort ( RandomAccessIterator first, RandomAccessIterator last );
    
    template <class RandomAccessIterator, class Compare>
      void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );
    //eg:
    
    *************************************************************************************/
    
    /*************************************************************************************
    std::stable_sort                     全部排序容器适用                       algorithm
    --------------------------------------------------------------------------------------
    template <class RandomAccessIterator>
      void stable_sort ( RandomAccessIterator first, RandomAccessIterator last );
    
    template <class RandomAccessIterator, class Compare>
      void stable_sort ( RandomAccessIterator first, RandomAccessIterator last,
                         Compare comp );
    //eg:
    
    *************************************************************************************/
    
    
    bool myfunction (int i,int j)
    {
        return (i<j);
    }
    
    struct myclass
    {
        bool operator() (int i,int j)
        {
            return (i<j);
        }
    } myobject;
    bool compare_as_ints (double i,double j)
    {
        return (int(i)<int(j));
    }
    
    int main ()
    {
        int myints[] = {32,71,12,45,26,80,53,33};
        vector<int> myvector (myints, myints+8);               // 32 71 12 45 26 80 53 33
        vector<int>::iterator it;
    
        // using default comparison (operator <):
        sort (myvector.begin(), myvector.begin()+4);           //(12 32 45 71)26 80 53 33
    
        // using function as comp
        sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)
    
        // using object as comp
        sort (myvector.begin(), myvector.end(), myobject);     //(12 26 32 33 45 53 71 80)
    
        // print out content:
        cout << "myvector contains:";
        for (it=myvector.begin(); it!=myvector.end(); ++it)
            cout << " " << *it;
    
        cout << endl;
        /**---------------------------------------------------------------------------------------**/
    
        double mydoubles[] = {3.14, 1.41, 2.72, 4.67, 1.73, 1.32, 1.62, 2.58};
    
        deque<double> mydeque;
        deque<double>::iterator id;
    
        mydeque.assign(mydoubles,mydoubles+8);
    
        cout << "using default comparison:";
        stable_sort (mydeque.begin(), mydeque.end());
        for (id=mydeque.begin(); id!=mydeque.end(); ++id)
            cout << " " << *id;
    
        mydeque.assign(mydoubles,mydoubles+8);
    
        cout << "
    using 'compare_as_ints' :";
        stable_sort (mydeque.begin(), mydeque.end(), compare_as_ints);
        for (id=mydeque.begin(); id!=mydeque.end(); ++id)
            cout << " " << *id;
    
        cout << endl;
    
        return 0;
    }
    


    myvector contains: 12 26 32 33 45 53 71 80
    using default comparison: 1.32 1.41 1.62 1.73 2.58 2.72 3.14 4.67
    using 'compare_as_ints' : 1.41 1.73 1.32 1.62 2.72 2.58 3.14 4.67
    
    



  • 相关阅读:
    [golang]golang signal.Notify 信号,如何优雅的退出
    解密
    [财务][数据化分析][帆软]报表设计-数据分析(op=view)
    [财务][数据化分析][帆软]报表设计-填报预览
    [财务][数据化分析][帆软]如何量化你的用户价值?RFM模型综合实战
    [数据分析][RFM模型]用数据分析用户
    [帆软][内网穿透][LanProxy]蛋疼的网络架构探讨
    [财务][数据化分析][帆软]报表设计-分页预览
    [财务][数据化分析][帆软]报表设计-模板预览
    [财务][数据化分析][帆软]报表设计-聚合报表设计
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8452077.html
Copyright © 2011-2022 走看看