快速读写相关
快速读入
最基础版本,主要思想是一个一个读入
int read()
{
int s=1,a=0;
char c=getchar();
while(!isdigit(c))
{
if(c=='-') s=-s;
c=getchar();
}
while(isdigit(c))
{
a=a*10+c-'0';
c=getchar();
}
return s*a;
}//v1
这个版本很好理解,可以加上inline快一点
inline int read()
{
int s=1,a=0;
char c=getchar();
while(!isdigit(c))
{
if(c=='-') s=-s;
c=getchar();
}
while(isdigit(c))
{
a=a*10+c-'0';
c=getchar();
}
return s*a;
}//v2
最后加上位运算以及手写isdigit函数
inline int read()
{
int s=1,a=0;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-') s=-s;
c=getchar();
}
while(c>='0'&&c<='9')
{
a=(a<<1)+(a<<3)+(ch^48);
c=getchar();
}
return s*a;
}//v3