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; // 升序
}