c++如何用sort函数实现降序排列
时间: 2024-12-06 12:24:05 浏览: 16
在 C++ 中,如果你想要对一组数据进行降序排列,可以使用标准库中的 `std::sort()` 函数配合自定义比较函数。`std::sort()` 默认按升序排列,但你可以通过提供一个谓词(一个函数对象)来改变这个顺序。对于降序排列,你可以创建一个比较函数,使得当两个元素传递给它时,如果第一个元素大于第二个,则返回 `true`,表示应该保持原顺序。
以下是一个简单的例子,假设我们有一个整数容器 `numbers`:
```cpp
#include <algorithm>
#include <vector>
bool compareDesc(int a, int b) {
return a > b;
}
int main() {
std::vector<int> numbers = {5, 2, 8, 1, 9, 4};
// 使用自定义的比较函数对向量进行降序排序
std::sort(numbers.begin(), numbers.end(), compareDesc);
// 打印排序后的结果
for (const auto& num : numbers) {
std::cout << num << " ";
}
return 0;
}
```
在这个例子中,`compareDesc` 函数会返回 `true` 当两个数是降序排列时,于是 `std::sort()` 就按照这个顺序对元素进行排序。
相关问题
在c++中如何实现降序排列
在C++中,你可以使用`std::sort()`函数配合自定义的比较函数来实现降序排列。下面是一个简单的示例:
```cpp
#include <iostream>
#include <algorithm> // 包含sort函数
// 定义比较函数,用于返回a是否应该排在b之前(降序)
bool compare(int a, int b) {
return a > b;
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
int n = sizeof(arr) / sizeof(arr[0]); // 获取数组长度
// 使用自定义比较函数对arr进行降序排序
std::sort(arr, arr + n, compare);
// 打印降序排列后的数组
std::cout << "降序排序后的数组:";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
```
在这个例子中,`compare`函数接受两个整数作为参数,如果第一个参数大于第二个,则返回`true`,这会使`std::sort()`将较大的元素放在前面,从而达到降序的效果。
sort降序排列函数c++
在C++中,可以使用标准库中的sort函数来对或容器进行排序。sort函数默认是按照升序排列的,如果需要降序排列,可以通过自比较函数来实现。
下面是一个示例代码,演示如何使用sort函数进行降序排列:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
// 自定义比较函数,用于降序排列
bool compare(int a, int b) {
return a > b;
}
int main() {
std::vector<int> nums = {5, 2, 8, 1, 9};
// 使用自定义比较函数进行降序排列
std::sort(nums.begin(), nums.end(), compare);
// 输出排序结果
for (int num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
运行以上代码,输出结果为:9 8 5 2 1,即按照降序排列的结果。
阅读全文