std::sort多关键字排序。
struct Data
{
int a;
int b;
int c;
};
vector<Data*> v;
...// v里面有数据
std::sort(v.begin()
, v.end()
, [](Data* first, Data* second) // 按a从小到大排序,按b从大到小排序,按c从大到小排序
{
if(first->a != second->a)
{
return first->a < second->a;
}
else
{
if(first->b != second->b)
{
return first->b > second->b;
}
else
{
return first->c > second->c
}
}
});