C++学习-函数-sort
对sort函数的学习
1 语法描述
sort(begin, end, cmp),其中begin为指向待sort()的数组的第一个元素的地址,end为最后数组将要排序的最后一个元素的下一个元素的地址,cmp函数(函数名任意)为排序准则,如果没有的话,默认升序排序。
比如:
int arr[10]={1,3,567,78,8,61,52,332,4345,81};
sort(arr,arr+10); //升序排列arr[0]到arr[9];
sort(arr+3,arr+7); //升序排列arr[3]到arr[7];
2 cmp函数的书写
格式:
sort(arr,arr+i,cmp);
2.1 对一般数列排序
cmp函数书写规则,是函数作为参数的传递,sort函数里具体发生了什么不需要了解。如果要排序字符串,可以根据需求更改。
//降序
bool cmp(int x,int y) //行参的数据类型要和排序的数组的数据类型一致
{
return x>y;
}
//升序
bool cmp(int x,int y)
{
return x<y;
}
2.2 结构体的排序
struct node{
int a,b;
};
bool a(node x,node y)
{
if(x.a>y.a) return 1; //若x.a>y.a根据x.a与y.a的值排序
if(x.a==y.a&&x.b>y.b) return 1; //若x.a=y.a根据x.b与y.b排序
return 0;
}
这是降序,升序把大于改成小于就好

浙公网安备 33010602011771号