sort从大到小cmp
时间: 2024-03-03 17:45:18 浏览: 70
在C++中,sort函数是用于对容器中的元素进行排序的函数。默认情况下,sort函数会按照升序对元素进行排序。如果需要按照降序排序,可以通过自定义比较函数(cmp)来实现。
下面是一个示例代码,展示如何使用sort函数进行降序排序:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 自定义比较函数,用于降序排序
bool cmp(int a, int b) {
return a > b;
}
int main() {
std::vector<int> nums = {5, 2, 8, 1, 9};
// 使用自定义比较函数进行降序排序
std::sort(nums.begin(), nums.end(), cmp);
// 输出排序结果
for (int num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在上述代码中,我们定义了一个自定义比较函数cmp,该函数返回a是否大于b。然后,在调用sort函数时,将cmp作为第三个参数传入,以实现按照降序排序。
运行上述代码,输出结果为:9 8 5 2 1,即按照降序排列的结果。
相关问题
c++ sort从大到小
要使用C++的sort函数将数组从大到小排序,可以使用以下代码:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int x, int y) {
return x > y;
}
int main() {
int arr[] = {2, 4, 5, 3, 1};
sort(arr, arr + 5, cmp); for(int i = 0; i < 5; i++) {
cout << arr[i << " ";
}
return 0;
}
```
在这个例子中,我们定义了一个比较函数`cmp`,使得排序的结果是从大到小。然后,我们调用sort函数,传入数组的起始地址和结束地址(`arr`和`arr + 5`),以及比较函数`cmp`。最后,我们使用for循环打印排序后的数组。
sort函数排序从大到小
sort函数可以实现从大到小的排序。有两种方式可以进行降序排序。第一种方式是使用greater<int>()作为sort函数的第三个参数。代码如下:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = {2, 4, 5, 3, 1};
sort(arr, arr + 5, greater<int>());
for(int i = 0; i < 5; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
第二种方式是自定义一个比较函数cmp,该函数返回x > y。然后将cmp作为sort函数的第三个参数。代码如下:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int x, int y) {
return x > y;
}
int main() {
int arr[10];
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
sort(arr, arr + 10);
for(int i = 0; i < 10; i++) {
cout << arr[i] << " ";
}
cout << endl;
sort(arr, arr + 10, cmp);
for(int i = 0; i < 10; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
以上两种方式都可以实现从大到小的排序。