降序排序的表示方法
时间: 2023-10-29 08:05:44 浏览: 22
降序排序可以通过自定义比较函数来实现,比较函数的返回值表示元素的大小关系。如果返回 true,则表示第一个参数排在第二个参数的后面,也就是第二个参数应该排在第一个参数的前面。
对于整型数组或容器,自定义比较函数可以这样写:
```c++
bool cmp(int a, int b) {
return a > b; // 降序排列,返回 a > b
}
int arr[] = {4, 2, 7, 1, 3};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, cmp); // 使用自定义比较函数排序
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
```
输出结果为:
```
7 4 3 2 1
```
对于自定义类型的数组或容器,可以通过在类中重载 `<` 运算符来指定元素的大小关系,然后直接使用 sort() 函数排序。例如:
```c++
struct Student {
string name;
int age;
int score;
bool operator < (const Student& other) const {
return score > other.score; // 降序排列
}
};
vector<Student> students = {{"Tom", 18, 90}, {"Jerry", 19, 80}, {"Alice", 20, 85}};
sort(students.begin(), students.end());
for (auto& s : students) {
cout << s.name << " " << s.age << " " << s.score << endl;
}
```
输出结果为:
```
Tom 18 90
Alice 20 85
Jerry 19 80
```