#include
#include
#include
using namespace std;
struct rule1
{
bool operator()(const int &a1,const int &a2)
{
return a1>a2;
}
};
struct rule2
{
bool operator()(const int &a1,const int &a2)
{
return a1%10 < a2%10;
}
};
void Print(int a[],int size)
{
for(int i=0;i<size;++i)
cout<<a[i]<<",";
cout<<endl;
}
int main()
{
int a[]={12,45,3,98,21,9};
sort(a,a+sizeof(a)/sizeof(int));
cout<<"(1)";
Print(a,sizeof(a)/sizeof(int));
sort(a,a+sizeof(a)/sizeof(int),rule1());
cout<<"(2)";
Print(a,sizeof(a)/sizeof(int));
sort(a,a+sizeof(a)/sizeof(int),rule2());
cout<<"(3)";
Print(a,sizeof(a)/sizeof(int));
return 0;
}
运行结果如下: