常用讀入輸出優化
阿新 • • 發佈:2018-02-20
print 索引 getchar() 數組 printf 定義 max fine 一個
本文主要講述常用的2種讀入優化方法。
輸出優化很少使用,在此簡單提一下:也就是把輸出的東西先放進字符串,再一次性puts\printf出去。提升不大,不常用。
首先當然需要先知道,scanf/printf比cin/cout快不少。
讀入優化:
getchar
使用getchar一個一個讀入字符,轉化成數字。比scanf快一些。inline int read() { int f=1,x=0;//f是正負的標識 char ch; do { ch=getchar(); if(ch=='-') f=-1; } while
2.fread
fread將stdin裏的內容讀到字符串裏,然後利用指針處理。
首先定義指針和讀入的數組:#define MAXB 1e7 //定義讀入最長的長度 char buf[MAXB], *cp = buf;
接下來是讀入:
fread(buf,1
最後是從中處理出數據(現在這個函數是為了處理int整型而設計)
void rd( int &x ) { x=0; while (*cp<'0'||'9'<*cp) cp++; while ('0'<=*cp&&*cp<= '9') { x=x*10+*cp-'0'; cp++; } //cp是當前指針,指向buf數組中目前要讀的位置
常用讀入\輸出優化