sort函数,可以自定义compare的方法或者重载>来完成自定义排序,而lamda表达式,也可以完成这个功能,测试代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class A
{
public:
A(int _a,int _b)
{
a=_a;
b=_b;
};
int a;
int b;
};
int main()
{
vector<A> test;
for(int i=0;i<10;i++)
{
A a(i,10-i);
test.emplace_back(a);
}
sort((),(),[](A x,A y){return >;});
for(int i=0;i<10;i++)
{
cout<<test[i].a<<endl;
}
return 1;
}
在sort函数的第三个参数中,[]表示需要作用域的哪些参数传入,这里为空,表示不需要传入任何参数,常见的有=和&,(A x, A y)表示两个入参,{}里面表示执行的函数,这里将返回值给省略了,根据return确定是bool类型的返回值。