优化下列代码 #include<iostream> #include<bits/stdc++.h> using namespace std; struct Student { string name; int scroe; }a[7]; bool compare (Student.scroe,Student.scroe) { return a.scroe>b.scroe; } int main() { int m; cin>>m; for(int i=0;i<m;i++) { cin>>a[i].name; } for(int i=0;i<m;i++) { cin>>a[i].scroe; } sort(a[0].scroe,a[m-1].score,compare); for(int i=0;i<m;i++) { cout<<a[i].name<<" "; } }
时间: 2023-07-31 15:09:43 浏览: 122
以下是对代码进行优化的修改:
#include <iostream>
#include <vector>
#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() {
int m;
cin >> m;
vector<Student> students(m);
for(int i = 0; i < m; i++) {
cin >> students[i].name;
}
for(int i = 0; i < m; i++) {
cin >> students[i].score;
}
sort(students.begin(), students.end(), compare);
for(int i = 0; i < m; i++) {
cout << students[i].name << " ";
}
return 0;
}
这里进行了以下优化:
- 使用了
vector
替代数组,这样可以更方便地处理动态大小的输入。 - 修改了结构体字段
scroe
为score
。 - 修改了
compare
函数的参数类型,以及比较逻辑。 - 使用了
students.begin()
和students.end()
作为sort
函数的参数,以对整个vector
进行排序。 - 添加了
return 0;
语句来指示程序运行成功结束。
相关推荐















