您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 10^5105 条):
2 NAME:在系统中查询姓名为 NAME 的学生的成绩。如果没能找到这名学生则输出Not found,否则输出该生成绩。3 NAME:在系统中删除姓名为 NAME 的学生信息。如果没能找到这名学生则输出Not found,否则输出Deleted successfully。4:输出系统中学生数量。无
无
5
1 lxl 10
2 lxl
3 lxl
2 lxl
4OK
10
Deleted successfully
Not found
0可以用STL里的map,把 NAME 作为 key ,\texttt{SCORE} 作为 value 。注意查询非空一定要用.count(),否则查询之后会自动填充空白。
#include<bits/stdc++.h>
using namespace std;
map<string,int> mp;
string name;
int T,in,score,ans;
int main(){
scanf("%d",&T);
while(T--){
scanf("%d",&in);
if(in==1){
cin>>name>>score;
if(!mp.count(name))ans++;
mp[name]=score;
cout<<"OK"<<endl;
}
if(in==2){
cin>>name;
if(mp.count(name))cout<<mp[name]<<endl;
else cout<<"Not found"<<endl;
}
if(in==3){
cin>>name;
if(mp.count(name)){
mp.erase(name);
ans--;
cout<<"Deleted successfully"<<endl;
}else{
cout<<"Not found"<<endl;
}
}
if( in==4)cout<<ans<<endl;
}
}最后修改:2021 年 02 月 12 日 04 : 44 PM
© 允许规范转载