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;