C++中sort()函数降序
时间: 2023-09-08 13:12:15 浏览: 116
要将C++中sort()函数的排序顺序改为降序,可以自定义比较函数,即重载运算符“<”,在比较时将参数顺序交换。例如:
```c++
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool cmp(int a, int b) {
return a > b;
}
int main() {
vector<int> v = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
sort(v.begin(), v.end(), cmp);
for (auto i : v) {
cout << i << " ";
}
cout << endl;
return 0;
}
```
输出:
```
9 6 5 5 5 4 3 3 2 1 1
```
这样就可以将vector按照从大到小的顺序排列了。
相关问题
c++中sort函数降序应该怎么写
在C++中,可以使用`sort`函数的自定义比较函数来实现降序排序。您可以定义一个比较函数,该函数接受两个参数,并返回一个布尔值,指示第一个参数是否应该排在第二个参数之前。
下面是一个示例,展示如何在C++中使用`sort`函数进行降序排序:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 自定义比较函数,用于降序排序
bool compare(int a, int b) {
return a > b;
}
int main() {
std::vector<int> numbers = {5, 2, 8, 1, 6};
// 使用自定义的比较函数进行降序排序
std::sort(numbers.begin(), numbers.end(), compare);
// 输出排序结果
for (int num : numbers) {
std::cout << num << " ";
}
return 0;
}
```
输出:
```
8 6 5 2 1
```
在上面的示例中,我们定义了`compare`函数,用于比较两个整数的大小。通过将`compare`函数作为第三个参数传递给`sort`函数,可以实现降序排序。
c++sort函数降序
c sort函数可以通过使用降序排序功能将数组或字符串按降序排列。c语言中的qsort函数可以实现排序功能。
qsort函数的语法如下:
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *))
其中,base是待排序的数组或字符串的首地址,nmemb是数组或字符串中元素的个数,size是每个元素的大小(以字节为单位),compar是指向相应比较函数的指针。
为了实现降序排序,需要自定义一个比较函数,用于比较两个元素的大小。比较函数返回一个整数值,表示两个元素的大小关系。如果返回值为正数,表示第一个元素大于第二个元素;如果返回值为负数,表示第一个元素小于第二个元素;如果返回值为零,表示两个元素相等。
下面是一个示例的比较函数,用于实现降序排序:
int compare(const void *a, const void *b){
int num1 = *(int*)a;
int num2 = *(int*)b;
return num2 - num1;
}
然后,可以在主函数中调用qsort函数进行排序:
int main(){
int arr[] = {4, 7, 2, 9, 1};
int len = sizeof(arr) / sizeof(arr[0]);
qsort(arr, len, sizeof(int), compare);
for(int i=0; i<len; i++){
printf("%d ", arr[i]);
}
return 0;
}
输出结果为:9 7 4 2 1,即数组按降序排序。
通过自定义比较函数,我们可以使用c语言的sort函数实现降序排序。
阅读全文