c++快读快写

快读快写是利用 \(getchar()\)\(putchar()\)\(cin\)\(cout\) 速度快的特点来对输入和输出进行优化

快读

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<<3) + (x<<1) + ch - '0';
        ch = getchar();
   }
   return x*f;
}

不分类型的快读

template <typename T>
inline void read(T &x){
	x=0;T f=1;char ch=getchar();
	while(ch<48 || ch>57){if(ch=='-')f=0;ch=getchar();}
    while(ch>=48 && ch<=57) x=x*10+ch-48,ch=getchar();
    if(!f) x=-x;
}

快写

void write(int x){
    if(x<0){//判断负数
        x=-x;
        putchar('-');
    }
    if(x>9) write(x/10);//位值拆数,递归
    putchar(x%10+'0');//按位输出
}
posted @ 2022-10-06 16:50  「ycw123」  阅读(909)  评论(0编辑  收藏  举报