求教 为什么不能用快读
查看原帖
求教 为什么不能用快读
502758
ForMyDream楼主2022/5/28 22:31
#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了)

各位大佬求教

2022/5/28 22:31
加载中...