zoukankan      html  css  js  c++  java
  • list-sort2

    ////////////////////////////////////////
    //      2018/04/27 7:36:05
    //      list-sort2
    
    // sorts with user datatype
    #include <iostream>
    #include <iomanip>
    #include <list>
    #include <string>
    
    using namespace std;
    
    template<class T>
    class Member{
    private:
        T last_n, first_n;
    public:
        Member(T f, T l) :first_n(f), last_n(l){}
        void print();
    
        // 注意: 由于有两个参数,全局重载
        friend bool operator < (Member& m1, Member& m2){
            return m1.last_n < m2.last_n;
        }
    };
    //------------------
    template<class T>
    void Member<T>::print(){
        cout.setf(ios::left);
        cout << setw(15) << last_n << " " << first_n << endl;
    }
    
    typedef Member<string> M;
    //========================
    
    int main(){
        list<M> li;
        li.push_back(M("Linda", "Smith"));
        li.push_back(M("Frost", "Robert"));
        li.push_back(M("Alex","Amstrong"));
    
        cout << "Before sorting by last name:
    ";
        cout << "==============================" << endl;
    
        list<M>::iterator it = li.begin();
        while (it != li.end()){
            (it++)->print();
        }
        cout << endl;
    
        li.sort();
    
        cout << "After sorting by last name:
    ";
        cout << "==========================" << endl;
    
        it = li.begin();
        while (it != li.end()){
            (it++)->print();
        }
        cout << endl;
    
        return 0;
    }
    
    
    /*
    OUTPUT:
        Before sorting by last name:
        ==============================
        Smith           Linda
        Robert          Frost
        Amstrong        Alex
    
        After sorting by last name:
        ==========================
        Amstrong        Alex
        Robert          Frost
        Smith           Linda
    */
  • 相关阅读:
    QT之sqlite连接
    QT之QCustomPlot(二)
    QT之QCustomPlot(一)
    Qt第三方库QCustomPlot——QCustomPlot解读
    C++ 头文件系列(sstream)
    C++ 头文件系列(streambuf)
    C++ 头文件系列(iostream)
    C++ 头文件系列(ostream)
    C++ 头文件系列(istream)
    C++ 头文件系列(ios)
  • 原文地址:https://www.cnblogs.com/laohaozi/p/12537932.html
Copyright © 2011-2022 走看看