第一种利用运算符重新定义
其中具体原理请参考const限定类的成员函数
*
‘<'符号
#include<iostream>
#include<algorithm>
using namespace std;
/*struct Value{
int x;
bool operator < (const Value &t)const{
return x>t.x;
}
}value[110];*/
struct Value{
int x;
friend bool operator<(Value a,Value b){
return a.x>b.x;
}
}value[110];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>value[i].x;
}
sort(value,value+n);
for(int i=0;i<n;i++)
{
cout<<value[i].x<<endl;
}
return 0;
}
第二种,利用比较器,也就是在外部定义一个新的比较规则
#include<iostream>
#include<algorithm>
using namespace std;
struct Value{
int x;
}value[110];
bool map(struct Value a, struct Value b){
return a.x>b.x;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>value[i].x;
}
sort(value,value+n,map);
for(int i=0;i<n;i++)
{
cout<<value[i].x<<endl;
}
}