简介
据说比scanf()和printf()还快的读取写入,但我测试性能效果一般(落谷评测)。
快读
inline int read() { int X = 0,w = 0; char ch = 0; while(!isdigit(ch)) {w |= ch == '-';ch = getchar();} while(isdigit(ch)) X = (X << 3) + (X << 1) + (ch ^ 48),ch=getchar(); return w ? -X : X; }
快写
inline void write(int x) { if(x < 0) putchar('-'),x = -x; if(x > 9) write(x / 10); putchar(x % 10 + '0'); }
文章评论
为什么ch=getchar()要写到后面?
@苏酒灵 如果写到前面的话,判断字符是就会被新输入的覆盖,就没法判断新输入的是不是数字了。
负数那一行 -X 改成位运算的 ~(X - 1) 是不是会快一点呢?
@聪明的猪 照理说位运算会稍快一点,但效果不是很明显