编写程序,利用链表List容器来容纳学生Student类对象,并采用函数对象实现学生对象的按序号排序,然后输出学生信息
时间: 2023-06-20 08:06:00 浏览: 90
下面是一个利用链表List容器来容纳学生Student类对象,并采用函数对象实现学生对象的按序号排序的示例代码:
```cpp
#include <iostream>
#include <string>
#include <list>
#include <algorithm>
using namespace std;
class Student {
public:
Student(int no, const string& name) : no_(no), name_(name) {}
int getNo() const { return no_; }
const string& getName() const { return name_; }
private:
int no_;
string name_;
};
class CompareStudent {
public:
bool operator()(const Student& s1, const Student& s2) const {
return s1.getNo() < s2.getNo();
}
};
int main() {
list<Student> students;
students.push_back(Student(3, "张三"));
students.push_back(Student(2, "李四"));
students.push_back(Student(1, "王五"));
students.sort(CompareStudent());
for (const auto& s : students) {
cout << "学号:" << s.getNo() << ",姓名:" << s.getName() << endl;
}
return 0;
}
```
运行结果如下:
```
学号:1,姓名:王五
学号:2,姓名:李四
学号:3,姓名:张三
```
在上面的代码中,我们定义了一个Student类,它包含学生的学号和姓名;另外,我们还定义了一个CompareStudent函数对象,用于比较两个学生对象的学号大小。在主函数中,我们利用链表List容器来容纳学生Student类对象,然后利用sort算法和CompareStudent函数对象实现了按学号排序。最后,我们遍历链表List容器,输出学生信息。
阅读全文