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