sort函数是c++里面的库函数,是快速排序的模板,使用的时候必须加上头文件#include<algorithm>
一般的模板是sort(首元素地址,尾元素地址,比较函数)
我们这里主要讲在结构体中怎样使用
比如说有一个结构体:
struct MyStruct
{
int sum;
int chin;
int math;
int eng;
int num;
}ff[s];
我们的要求是先进行sum的大小比较,sum大的排在前面,如果相等,那么继续比较chin,大的排在前面,同样如果chin相等的话,在比较num的大小,num小的排在前面
那么我们就可以根据要求写出比较函数cmp:
bool cmp(const MyStruct &a, const MyStruct &b)
{
if (a.sum > b.sum)
return 1;
else if (a.sum < b.sum)
return 0;
else
{
if (a.chin > b.chin)
return 1;
else if (a.chin < b.chin)
return 0;
else
{
if (a.num < b.num)
return 1;
else
return 0;
}
}
}
那么我们就可以这样调用sort函数:
sort(ff + 1, ff + n + 1, cmp);
所以我们需要的排序方法都可以根据cmp函数的编写来定制
另外,如果是vector类型的数组的话,那么就必须
sort(arr.begin(),arr.begin+n,cmp)
才能编译成功