Title
题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。
Code
#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
int main(){
int n;
while(cin >> n){
int flag,i,j;
cin >> flag;
string name;
int score;
vector<vector<string> > students(101, vector<string>());
for(int i = 0;i < n;i++){
cin >> name >> score;
students[score].push_back(name);//已按score排好序
}
if(flag){
for(i = 0;i < students.size();i++){
for(j = 0;j < students[i].size();j++)
cout << students[i][j] << " " << i << endl;
}
}
else{
for(i = students.size() - 1;i >= 0;i--){
for(j = 0;j < students[i].size();j++)
cout << students[i][j] << " " << i << endl;
}
}
}
return 0;
}
vector用法总结
代码中有这样一句:
vector<vector< string > > students(101, vector());
这是一个vector的二维数组students,初始化了101的大小
例:存入Alice 22分,Bob 96分
以此来存入分数对应的姓名,同分数时,会存入该分数的下一个位置
逆序只需从students.size() - 1到0输出即可
来源:CSDN
作者:_lluvia
链接:https://blog.csdn.net/qq_38213037/article/details/104172477