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;
}

这是降序,升序把大于改成小于就好

posted @ 2020-11-26 21:02  七铭的魔法师  阅读(30)  评论(0)    收藏  举报