c++怎用sort自定义排序
时间: 2023-11-11 08:55:59 浏览: 102
在C语言中,可以使用sort函数来对数组进行排序。如果想要自定义排序方式,可以通过自定义比较函数来实现。
在引用的代码中,我们可以看到自定义的比较函数cmp是一个全局函数,它的参数是两个节点node x和y,返回一个布尔值。在这个例子中,比较的是节点的a属性,如果x的a小于y的a,则返回true,否则返回false。
在引用的代码中,我们可以看到自定义的比较函数cmp1是一个静态成员函数,它也是用来比较两个节点node x和y的a属性。这个函数是作为SNode类的静态成员函数来定义的。
在使用sort函数时,我们将自定义的比较函数作为sort函数的第三个参数传递进去,这样sort函数会根据比较函数的返回值来进行排序。
下面是一个简单的示例代码,演示了如何使用sort函数进行自定义排序:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct Student {
string name;
int score;
};
bool cmp(Student a, Student b) {
return a.score > b.score;
}
int main() {
vector<Student> students;
students.push_back({"Tom", 90});
students.push_back({"Jack", 80});
students.push_back({"Alice", 95});
students.push_back({"Bob", 85});
sort(students.begin(), students.end(), cmp);
for (int i = 0; i < students.size(); i++) {
cout << students[i].name << " " << students[i].score << endl;
}
return 0;
}
输出结果为:
Alice 95
Tom 90
Bob 85
Jack 80
阅读全文