C++ sort函数cmp
时间: 2023-11-14 09:07:32 浏览: 40
C++中的sort函数可以通过传入一个自定义的比较函数cmp来实现按照特定规则排序。cmp函数需要返回一个bool类型的值,表示两个元素的大小关系。
如果cmp返回true,则表示第一个元素应该排在第二个元素之前;如果cmp返回false,则表示第一个元素应该排在第二个元素之后。
下面是一个例子,演示如何使用cmp函数对一个整数数组进行降序排序:
```cpp
bool cmp(int a, int b) {
return a > b;
}
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(arr) / sizeof(int);
sort(arr, arr + n, cmp);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:9 6 5 5 5 4 3 3 2 1 1
相关问题
c++ sort函数的cmp
在C++中,sort函数是用来对指定区间的元素进行排序的函数。它的原型为:
void sort( iterator start, iterator end, StrictWeakOrdering cmp );
其中,cmp是一个比较函数,用来定义元素的排序规则。在调用sort函数时,我们可以根据自己的需求编写cmp函数,来决定元素的排序逻辑和比较方式。
cmp函数的命名可以根据个人喜好来确定,但一般建议命名具有描述性,并能反映出排序规则的名称,以提高代码的可读性。
下面是一个示例代码,演示了如何使用sort函数和自定义的cmp函数对Book结构体数组进行排序:
#include <algorithm>
#include <iostream>
using namespace std;
typedef struct {
string book;
int num;
} Book;
// sort的比较函数
bool cmp(Book a, Book b) {
return a.num > b.num;
}
int main() {
Book Bok = {{"book1", 5}, {"book2", 3}, {"book3", 8}};
sort(Bok, Bok + 3, cmp); // 使用cmp函数进行排序
for (int i = 0; i < 3; i++) {
cout << Bok[i].book << " " << Bok[i].num << endl;
}
return 0;
}
输出结果为:
book3 8
book1 5
book2 3
c++ sort cmp
在C++中,sort函数的compare函数(cmp)是用于自定义排序规则的。它是一个可选的参数,用于指定排序时的比较方式。比较函数接受两个参数,并返回一个bool值,表示第一个参数是否小于第二个参数。
以下是一个示例,展示如何使用cmp函数来排序一个整数数组:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a, int b) {
// 自定义的比较函数,按照降序排序
return a > b;
}
int main() {
int arr[] = {5, 2, 9, 1, 3};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, cmp);
cout << "排序后的数组:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
上述代码中,cmp函数定义了降序排序的规则。sort函数根据这个规则对数组进行排序。最终输出的结果将会是:9 5 3 2 1。
你可以根据自己的需求编写不同的cmp函数来实现不同的排序规则。