洛谷 P5266 【深基17.例6】学籍管理
作者:互联网
题目描述
您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 10^5105 条):
- 插入与修改,格式
1 NAME SCORE
:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 \texttt{SCORE}SCORE(0<\texttt{SCORE}<2^{31}0<SCORE<231) 的学生。如果已经有同名的学生则更新这名学生的成绩为 SCORE。如果成功插入或者修改则输出OK
。 - 查询,格式
2 NAME
:在系统中查询姓名为 NAME 的学生的成绩。如果没能找到这名学生则输出Not found
,否则输出该生成绩。 - 删除,格式
3 NAME
:在系统中删除姓名为 NAME 的学生信息。如果没能找到这名学生则输出Not found
,否则输出Deleted successfully
。 - 汇总,格式
4
:输出系统中学生数量。
输入格式
无
输出格式
无
输入输出样例
输入 #15 1 lxl 10 2 lxl 3 lxl 2 lxl 4输出 #1OK
10 Deleted successfully Not found 0
分析
map练习题
代码
#include<bits/stdc++.h> using namespace std; int n; map<string,long long> student; map<string,long long>::iterator it; int main() { cin>>n; for(int i=1;i<=n;i++) { int q; long long num; cin>>q; string a; if(q==1) { cin>>a; cin>>num; it=student.find(a); if(it!=student.end())//找到了 { it->second=num; } else { student.insert(pair<string,long long>(a,num)); } cout<<"OK"<<endl; } else if(q==2) { cin>>a; it=student.find(a); if(it==student.end()) { cout<<"Not found"<<endl; } else cout<<it->second<<endl; } else if(q==3) { cin>>a; int f=student.erase(a); if(f) cout<<"Deleted successfully"<<endl; else cout<<"Not found"<<endl; } else if(q==4) { cout<<student.size()<<endl; } } return 0; }
标签:输出,洛谷,NAME,17,int,深基,student,格式,lxl 来源: https://www.cnblogs.com/KyleDeng/p/15599700.html