题源 map的基本操作
题目描述
您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 105105 条):
- 插入与修改,格式
1 NAME SCORE
:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 SCORE(0<SCORE<2^31) 的学生。如果已经有同名的学生则更新这名学生的成绩为 SCORE。如果成功插入或者修改则输出OK
。- 查询,格式
2 NAME
:在系统中查询姓名为 NAME 的学生的成绩。如果没能找到这名学生则输出Not found
,否则输出该生成绩。- 删除,格式
3 NAME
:在系统中删除姓名为 NAME 的学生信息。如果没能找到这名学生则输出Not found
,否则输出Deleted successfully
。- 汇总,格式
4
:输出系统中学生数量。输入格式
无
输出格式
无
输入输出样例
输入 #1复制
5 1 lxl 10 2 lxl 3 lxl 2 lxl 4输出 #1复制
OK 10 Deleted successfully Not found 0
#include<bits/stdc++.h>
using namespace std;
int n,op,sc;
string name;
int main()
{map<string,int>m;cin>>n;for(int i=1;i<=n;i++){cin>>op;if(op==1){cin>>name>>sc;m[name]=sc;cout<<"OK"<<endl;}else if(op==2){cin>>name;if(m.find(name)==m.end()){cout<<"Not found"<<endl;}else{cout<<m[name]<<endl;}}else if(op==3){cin>>name;if(m.find(name)==m.end()){cout<<"Not found"<<endl;}else{m.erase(name);cout<<"Deleted successfully"<<endl;}}else{cout<<m.size()<<endl;}}return 0;}