快读模板
最开始我写的代码
int read(){
int x=0,f=1;//f用来标记±
char ch=getchar();
if(ch=='-') f=-1; //如果是负数,把f变成-1
while(isdigit(ch)){//isdigit(ch)函数用来判断ch是否为数字
x=x*10+ch-'0';//字符转int
ch=getchar();
}
return x*f;//返回数字
}
一般来说,输入数字就只有正负之分,所以一个if判断就够了,但是到后来发现一个缺点,就是当只输入空格时,会输出0,所以我做出更改,,把所有非数字且非正负号全忽略
有了下面代码(没注释,应该能看懂)
int read(){
int x=0,f=1;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-1;
ch=getchar();
}
//if(ch=='-') f=-1;
while(isdigit(ch)){
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
这个不难,完全是为了凑字数
众所周知,cin和cout的时间长,速度慢
可以在主函数用
ios::sync_with_stdio(false)
可以提快cin和cout的速度
详情可以查看ios::sync_with_stdio(false)详解这篇博客
写的很详细