快速读写相关

快速读入

最基础版本,主要思想是一个一个读入

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
原文地址:https://www.cnblogs.com/huaruoji/p/12981795.html