C++整数快读

153 阅读1分钟

原理就是getchar()比scanf快,所以先以字符读入,再转换为整数

inline int read() //整数快读
{
    int x = 0, f = 1;
    char ch = getchar();
    while (ch < '0' || ch > '9')
    {
        if (ch == '-')
            f = -1;
        ch = getchar();
    }
    while (ch >= '0' && ch <= '9')
    {
        x = (x << 1) + (x << 3) + (ch ^ 48);
        //(x << 1) + (x << 3) = x * 2 + x * 8 = x * 10
        ch = getchar();
    }
    return x * f;
}