#include<iostream>
#include<map>
#include<cstring>
using namespace std;
inline int read(){
int f=1,ans=0;
char cc=getchar();
while (cc<'0'||cc>'9'){
if (cc=='-') f=-1;
cc=getchar();
}
while (cc>='0'&&cc<='9'){
ans=(ans<<3)+(ans<<1)+cc-'0';
cc=getchar();
}
return ans*f;
}
map <string,int> stu;
int main(){
int n=read();//n:操作条数
// int n;
// cin>>n;
for (int i=1;i<=n;i++){
int opera=read();
// int opera;
// cin>>opera;
string name;
//opera:operation (operate) 操作
if (opera!=4) cin>>name;
//如果不是4操作 就要输入姓名
switch (opera){
case 1://操作1 添加与修改
int score=read();
stu[name]=score;
cout<<"OK\n"; //or :<<endl
break;//注意:一定要加break 否则就会执行它下面所有的case
case 2://操作2 查询
//1.未找到-> Not found
//2.找到了-> 输出成绩
if (stu.count(name)) cout<<stu[name]<<endl;
else{
cout<<"Not found\n";
}
break;
case 3://操作3:删除
//1.未找到-> Not found
//2.找到了-> 删除 输出
if (stu.count(name)){
stu.erase(name);
cout<<"Deleted successfully\n";
}
else{
cout<<"Not found\n";
}
break;
case 4://汇总
cout<<stu.size()<<endl;
break;
}
}
return 0;
}
case 2 中的变量score为什么不能用快读?为什么用快读的话在 case2 case3 case4中就都会报错?
(为什么把快读换成cin就AC了)
各位大佬求教