使用STL分别按照学生的身高和成绩进行排序 学生信息未知
时间: 2023-08-08 18:14:05 浏览: 88
如果学生的信息未知,我们可以通过用户输入来获取学生的信息,然后再按照身高或成绩进行排序。示例代码如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Student {
string name;
int height;
int score;
};
bool cmp_height(const Student& a, const Student& b) {
return a.height > b.height;
}
bool cmp_score(const Student& a, const Student& b) {
return a.score > b.score;
}
int main() {
int n;
cout << "请输入学生人数:" << endl;
cin >> n;
vector<Student> students(n);
for (int i = 0; i < n; ++i) {
cout << "请输入第" << i+1 << "个学生的姓名、身高和成绩:" << endl;
cin >> students[i].name >> students[i].height >> students[i].score;
}
sort(students.begin(), students.end(), cmp_height);
cout << "按照身高排序后的学生信息:" << endl;
for (auto& student : students) {
cout << student.name << " " << student.height << " " << student.score << endl;
}
sort(students.begin(), students.end(), cmp_score);
cout << "按照成绩排序后的学生信息:" << endl;
for (auto& student : students) {
cout << student.name << " " << student.height << " " << student.score << endl;
}
return 0;
}
```
运行程序后,用户需要输入学生人数以及每个学生的姓名、身高和成绩,然后程序会按照身高和成绩分别对学生信息进行排序,并输出排序后的结果。
阅读全文