C++ STL中提供了效率很高的sort方法,通常我们利用该方法对内置数据类型(如:int, double ...)进行排序,但是如果需要按照自定义类中某个指标对类进行排序,那么我们就需要自行定义比较函数cmp,对为sort方法的参数。例如定义一个测试类Test:
class Test { public: int i; int j; };
vector<Test> test; for(int t = 0; t < 10; t++) { Test a; a.i = rand(); a.j = rand(); test.push_back(a); }
sort(test.begin(), test.end(), cmp); bool cmp( const Test a, const Test b) { return a.i > b.i; // 降序 // return a.i < b.i; // 升序 }