c++ sort函数的cmp
时间: 2023-11-12 10:54:54 浏览: 111
在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
阅读全文