代码截取自
https://blog.csdn.net/baidu_23318869/article/details/41284075
该文用向量实现zuma算法题。
const int SZ = 1<<20; //快速io
struct fastio{
char inbuf[SZ];
char outbuf[SZ];
fastio(){
setvbuf(stdin,inbuf,_IOFBF,SZ);
setvbuf(stdout,outbuf,_IOFBF,SZ);
}
}io;
————————————————
版权声明:本文为CSDN博主「水之如此」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_23318869/article/details/41284075
快速io,其实是设置缓冲区,fastio结构体重写了构造函数,所以定义一个对象io时候,就自动申请了一个inbuf和outbuf数组,分别作为输入输出缓冲区,setvbuf就是一个设置缓冲区的函数,第一个参数stdin/stdout意思是对标准输入/出流设置缓冲区,第二个参数inbuf/outbuf意思是设置inbuf/outbuf数组为缓冲区,第三个参数_IOFBF意思是采用全缓冲的模式(即所有标准输入输出都用缓冲区模式,而不是直接模式),第四个参数SZ是缓冲区大小。
因为fastio结构体重定义了构造函数,所以io(跟在结构体后面那个玩意)对象生成的时候,自动完成了对标准输入输出的缓冲区设置,以后函数里一旦用到标准输入输出,就会采用缓冲区模式。