快读快写,顾名思义,就是提升输入和输出的速度。在这里简单介绍一下几种输入输出的优劣。
-
C++ cin/cout 输入输出:
优点是读入的时候不用管数据类型,也就是说不用背scanf/printf的%d、%c、%lld等繁琐的东西,但是缺点就是比scanf/printf慢一些。 -
C scanf/printf 输入输出:与C++对比,比cin/cout快一些,但使用方法细节比较多,容易出锅。
-
快读/快写:只能处理整数读入/输出,但是要比标准输入输出函数都快得多。
-
一般来讲,快读快写在针对数据量不是很大的输入输出的时候显得比较无力,但如果是多组数据或者输入量较多,就可以显著提升效率。
-
开不开inline差不多。
-
还有一种更快的fread()函数型快读,比一般的快读都要快,但是模板不太好理解,所以不加介绍。
-
下面是代码:
快读函数
点击查看代码
inline int read(){
int re=0;bool sign=false;char ch=getchar();
for(;ch<'0'||ch>'9';ch=getchar()) if(ch=='-') sign=true;
for(;ch>='0'&&ch<='9';ch=getchar()) re=(re<<1)+(re<<3)+(ch^48);
return sign?~re+1:re;
}
快写函数
点击查看代码
void write(int out){
if(out<0) putchar('-'),out=-out;
if(out>9) write(out/10);
putchar(out%10+'0');
return;
}