用友元函数实现成绩从大到小排列
时间: 2024-11-03 22:17:33 浏览: 46
用友元函数实现成绩从大到小排列通常是在C++编程中,特别是在数据结构如vector、list等容器中,为了提高排序算法的效率而设计的。友元函数是指那些可以访问类的私有成员,并能够直接操作这个类的对象的非成员函数。对于学生类的成绩排序,你可以定义一个友元函数作为比较器,它接受两个学生对象并返回他们的成绩大小关系。
例如:
```cpp
#include <iostream>
#include <vector>
class Student {
public:
int score;
// 其他属性...
private:
friend bool compare_scores(Student& s1, Student& s2);
};
bool compare_scores(Student& s1, Student& s2) {
return s1.score > s2.score; // 按照分数降序排列
}
int main() {
std::vector<Student> students = ...; // 学生列表
std::sort(students.begin(), students.end(), compare_scores); // 使用自定义比较器
for (const auto& student : students) {
std::cout << "Score: " << student.score << "\n";
}
return 0;
}
```
在这个例子中,`compare_scores`函数就是一个友元函数,它用于`std::sort`对学生成绩进行降序排列。
阅读全文
相关推荐


















