头文件
C++中使用sort()函数需要引用<algorithm>头文件
sort函数作用
C++中sort()函数可以对传入的数组进行排序,由使用者决定排序方式,默认为升序排序。
默认使用格式
sort(数组,数组+数组长度); //简单升序排序方式
//例子 int arr[10] = {1, 3, 4, 2, 6, 5, 7, 8, 9, 10}; sort(arr, arr + 10); //排序后 arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
sort()函数参数
sort(arr, arr + arr_length, cmp);
arr为数组,arr_length为数组长度,cmp为使用者定义的比较方法(返回值为bool的函数)
在对常用的数据类型进行排序时,可以不添加cmp参数,默认升序排序。
cmp函数写法
bool cmp(int a, int b)
{
return a > b;
}
此时使用该cmp函数对int类型数组进行排序,可以得到降序排序的数组。
注意事项(struct和vector)
sort函数无法直接对struct(结构体)进行排序,此时cmp函数则为必须的参数。
同时,vector类型的数据,需要下列的传参格式进行排序:
sort(vector.begin(),vector.end());
struct类型的cmp函数
示例代码
//结构体
struct a{
int id;
int num;
}b[10];
//按照结构体中的num进行升序排序
bool cmp(a b1, a b2)
{
return b1.num < b2.num;
}
//使用sort函数的格式
sort(b, b + 10, cmp);