sort是stl中一个经常用到的排序函数,可以对数组或类似数组(例如vector)的结构进行排序,默认为升序排序。
例如下面的代码对vec进行升序排序:
sort(vec.begin(),vec.end());
若想降序排序,则只需加greater即可:
sort(vec.begin(),vec.end(),gerater<int>());
若想对结构体进行排序,也很简单
第一种方法,重构运算符:
class Test
{
public:
int a;
int b;
Test(int a,int b)
{
this->a = a;
this->b = b;
}
bool operator <(const Test &other) const
{
return a<other.a;
}
bool operator >(const Test &other) const
{
return a>other.a;
}
};
使用重构运算符之后即可直接调用sort进行排序。
第二种,定义compare函数进行排序:
bool compare(Test first,Test second)
{
return first.a>second.a;
}
Test mytest;
sort(mytest.begin(),mytest.end(),compare)