sort(begin, end, compare_fun):
排序函数,默认升序,区间左闭右开 [begin, end) 。
compare_fun 是 greater() 表示降序。compare_fun也可以自定义,返回 bool 类型。
int arr[8] = { 7, 13, 4, 5, 8, 1, 11, 9 };
int n = 8;
sort(arr, arr + n); //升序排列
sort(arr, arr + n, greater<int>()); //降序排列
// int len = sizeof(arr) / sizeof(arr[0]); // 获取数组长度
// 数组长度为 n ,如果是从下标 1 开始
sort(arr + 1, arr + n + 1);
自定义比较函数
bool cmp(int x, int y){
return x > y; //降序排列
}
sort(arr, arr + 8, cmp);
使用vector
int arr[8] = { 7, 13, 4, 5, 8, 1, 11, 9 };
vector<int> vArr(arr, arr + 8);
sort(vArr.begin(), vArr.end(), greater<int>()); //降序排列
对结构体排序
//爱码岛编程
#include <bits/stdc++.h>
using namespace std;
struct student{
string name;
double score;
};
//分数降序
bool cmp(student s1, student s2){
return s1.score > s2.score;
}
int main() {
student arr[3] = {
{"李四",97},
{"王五",90},
{"张三",100}
};
//排序
sort(arr, arr + 3, cmp);
for(int i = 0; i < 3; i++){
cout << arr[i].name << ":" << arr[i].score << endl;
}
return 0;
}