[模板]读入优化


一、关于读入优化

不得不说,读入优化在大规模读入的时候有很大的优势。
这种情况下,读入优化可以节省大约400ms
读入优化按字符读入,之后转化为十进制。

二、模板

模板A:(int a=read();)

int read(){
	int x=0,flag=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-') flag=-1;ch=getchar();}
	//等价于 ch<'0'||ch>'9' 
	while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
	//等价于ch>='0'&&ch<='9'
	//x=(x<<3)+(x<<1)+(ch^48)可替换为 x=x*10+ch-'0' 
	return x*flag;
}

模板B:(int a;read(a);)

void read(int &x){
	int flag=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-') flag=-1;ch=getchar();}
	while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
	x*=flag;
}

pic.png

原文地址:https://www.cnblogs.com/cyanigence-oi/p/11721391.html