sort降序排列函数c++
时间: 2024-03-11 07:42:31 浏览: 205
在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,即按照降序排列的结果。
相关问题
sort降序排列c++
答案: 要使用sort函数进行降序排列,可以使用以下方法:sort(a, a + 10, greater<int>()),其中a是一个包含10个整数的数组。这样就可以将数组a按照降序排列。这种方法的时间复杂度是O(nlogn),执行效率较高。不过需要注意的是,在使用sort函数之前需要包含<algorithm>头文件。
list中sort降序排列 c++
在C++中,可以使用标准库中的`std::sort`函数对`std::list`进行排序。要实现降序排列,可以使用自定义的比较函数或者使用lambda表达式。
以下是一个示例代码,演示如何对`std::list`进行降序排序:
```cpp
#include <iostream>
#include <list>
#include <algorithm>
bool compare(int a, int b) {
return a > b; // 降序排列
}
int main() {
std::list<int> myList = {5, 2, 8, 1, 9};
// 使用自定义的比较函数进行降序排序
myList.sort(compare);
// 输出排序后的结果
for (int num : myList) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:9 8 5 2 1
在上述代码中,我们定义了一个名为`compare`的比较函数,该函数返回`true`表示第一个参数大于第二个参数,从而实现降序排列。然后,我们使用`std::sort`函数对`std::list`进行排序,并传入自定义的比较函数作为参数。
如果你不想定义额外的比较函数,也可以使用lambda表达式来实现相同的效果。以下是使用lambda表达式的示例代码:
```cpp
#include <iostream>
#include <list>
#include <algorithm>
int main() {
std::list<int> myList = {5, 2, 8, 1, 9};
// 使用lambda表达式进行降序排序
myList.sort([](int a, int b) { return a > b; });
// 输出排序后的结果
for (int num : myList) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:9 8 5 2 1
使用lambda表达式可以直接在`std::sort`函数的参数中定义比较规则,避免了定义额外的比较函数。
阅读全文