C++的sort函数如何实现从大到小排序
时间: 2024-09-23 13:01:19 浏览: 34
C++标准库中的`sort`函数默认按照升序排列元素,如果你想实现从大到小的排序,你需要自定义一下比较规则。你可以通过提供一个比较函数给`sort`,这个函数通常接受两个类型的值并返回一个布尔值,表示第一个值是否应该排在第二个值之前。
例如,对于整数数组,你可以创建一个比较函数,比如`greater<int>()`,它是STL中提供的,它会使得较大的数排在前面:
```cpp
#include <algorithm>
#include <vector>
bool compareDesc(const int& a, const int& b) {
return a > b;
}
int main() {
std::vector<int> vec = {5, 2, 8, 1, 9};
// 使用compareDesc函数作为第三个模板参数
std::sort(vec.begin(), vec.end(), compareDesc);
for (const auto &num : vec) {
std::cout << num << " ";
}
// 输出:9 8 5 2 1
return 0;
}
```
在这个例子中,`compareDesc`函数告诉`sort`你应该按降序而不是默认的升序排列。
阅读全文