c++sort函数结构体数组
时间: 2023-08-30 15:05:23 浏览: 159
C++结构体数组详细解析
5星 · 资源好评率100%
可以使用C++的STL库中的sort函数对结构体数组进行排序。
假设有一个结构体Student,包含成绩和姓名两个属性:
```
struct Student {
string name;
int score;
};
```
现在要对一个包含多个Student对象的数组进行按照成绩从高到低的排序,可以使用以下代码:
```
bool cmp(Student a, Student b) {
return a.score > b.score;
}
int main() {
Student students[3] = {
{"Tom", 85},
{"Jerry", 90},
{"John", 78}
};
sort(students, students + 3, cmp);
for (int i = 0; i < 3; i++) {
cout << students[i].name << " " << students[i].score << endl;
}
return 0;
}
```
其中,cmp函数用于定义比较规则,sort函数的第二个参数为排序区间的左端点,第三个参数为排序区间的右端点,最后对排序后的数组进行遍历输出即可。
需要注意的是,cmp函数必须返回bool类型,表示a是否应该排在b的前面。在本例中,按照成绩从高到低排序,因此如果a的成绩大于b的成绩,则返回true,否则返回false。
阅读全文