加载中

C/C++快读快写模板

写作目的

快速读写的模板在网上很多,写这篇文章主要是方便自己查看

快读

inline int read(){
    register int x=0,f=1;
    register 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);
        ch=getchar();
    }
    return x*f;
}

register关键字

将变量放入寄存器,大幅提升效率

inline关键字

函数内联,类似于#define,可以免去压栈操作

位运算

在计算x时使用位运算,因为位运算要快于算术运算

快写

inline void write(int x)
{
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}

多个数字输出

快写函数不会在多个数字之间加空格,需要自己使用putchar(' ')来实现

long long 类型快速读写

如果要读写long long类型的数,将相应变量从int类型改为long long即可

参考资料

posted @ 2021-07-31 16:10  fenggwsx  阅读(301)  评论(0编辑  收藏  举报