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;

  

 

posted @ 2015-03-25 15:26  zmiao  阅读(603)  评论(0编辑  收藏  举报