io外挂
c++里最快的io方式是什么呢?
详见这里。
同时给出一个比较常用的方式,就是用fread.然后自己解析文本,而不是用cin或者scanf,见这里:
//fast io test #include <cstdio> #include <cstdlib> const int MAXS = 30* 1024* 1024; char buf[MAXS]; void io_parse(char *buf, int len = MAXS){ //重点修改此方法,自己解析输入。 int i; for(char *p = buf; *p && p - buf < len; p++){ putchar(*p); } } void fast_io(){ int len = fread(buf, 1, MAXS, stdin); //或者: int len = read(stdin,buf,MAXS) buf[len] = '\0'; io_parse(buf, len); } int main(){ fast_io(); return 0; }
还有这个io外挂,可以放在程序的开头:
const int SZ = 1<<20; struct fastio{ char inbuf[SZ]; char outbuf[SZ]; fastio(){ setvbuf(stdin,inbuf,_IOFBF,SZ); setvbuf(stdout,outbuf,_IOFBF,SZ); } }io;