结构体排序
时间: 2023-06-21 21:17:43 浏览: 90
c++ 结构体排序 干货满满
要对结构体进行排序,可以使用标准库中的sort函数。sort函数需要两个参数:一个是要排序的数据的起始地址,另一个是数据的结束地址。同时,我们需要指定一个比较函数,用于指定排序的方式。
比较函数的形式为:bool compare(const T &a, const T &b),其中T代表结构体的类型,a和b是结构体对象的引用。比较函数需要返回一个bool类型的结果,表示a是否应该排在b前面。如果返回true,表示a应该排在b前面,否则表示b应该排在a前面。
以下是一个示例代码,演示如何对一个结构体数组按照其中一个成员变量进行排序:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
struct Student {
string name;
int score;
};
bool compare(const Student &a, const Student &b) {
return a.score > b.score; // 按照分数从高到低排序
}
int main() {
Student students[3] = {
{"Tom", 80},
{"Jack", 90},
{"Alice", 70}
};
sort(students, students + 3, compare);
for (int i = 0; i < 3; i++) {
cout << students[i].name << " " << students[i].score << endl;
}
return 0;
}
```
输出结果为:
```
Jack 90
Tom 80
Alice 70
```
阅读全文