c++通用算法-sort

myPrint.h
#ifndef MYPRINT_H
#define MYPRINT_H
#include"iostream"
using namespace std;

template<typename T>
void print(const T& t)
{
    typename T::const_iterator iter;
    for(iter=t.begin();iter!=t.end();++iter){
        cout << *iter << " ";
    }
    cout << endl;
}

#endif // MYPRINT_H


#include<algorithm>
#include<boost/assign.hpp>
#include"myPrint.h"

using namespace boost::assign;
using namespace std;

/*
  这下面的class换成struct可以少写几个public,这是不是人们在c++中还用struct的一个原因呢?
*/
class People{
public:
    int age;
    int yearEnrolled;
public:
    People(int a,int y):age(a),yearEnrolled(y){}
};

class compare{
public:
    bool operator()(const People& p1,const People& p2){
        return p1.age<p2.age;
    }
};

int main()
{
    vector<int> v2;
    push_back(v2)(1)(3)(2)(7)(4);
    sort(v2.begin(),v2.end());
    print(v2);

    People p1(20,1999);
    People p2(20,2000);
    People p3(21,1997);
    People p4(27,1998);
    People p5(22,1996);
    vector<People> v;
    push_back(v)(p1)(p2)(p3)(p4)(p5);
    sort(v.begin(),v.end(),compare());
    vector<People>::const_iterator iter;
    for(iter=v.begin();iter!=v.end();++iter){
        cout << (*iter).age << endl;
    }
}


1 2 3 4 7 
20
20
21
22
27

你可能感兴趣的:(C++,c,算法,C#)