code1
inline int read()
code2inline int read()
code1#include using namespace std;
void write(int x)
if (x > 9)
write(x / 10);
putchar(x % 10 + '0');
}
code2inline void write(int x) while (x);
while (top) putchar(sta[--top] + 48); // 48 是 '0'
}
這個函式是乙個「是否相容 stdio」的開關,c++ 為了相容 c,保證程式在使用了 printf 和 std::cout 的時候不發生混亂,將輸出流綁到了一起。
我們可以在進行 io 操作之前將 stdio 解除繫結,但是在這樣做之後要注意不能同時使用 std::cin/std::cout 和 scanf/printf 。
tie 是將兩個 stream 繫結的函式,空引數的話返回當前的輸出流指標。
在預設的情況下 std::cin 繫結的是 std::cout ,每次執行 << 操作符的時候都要呼叫 flush() ,這樣會增加 io 負擔。可以通過 std::cin.tie(0) (0 表示 null)來解除 std::cin 與 std::cout 的繫結,進一步加快執行效率。
std::ios::sync_with_stdio(false);
std::cin.tie(0);
輸入輸出優化
最近遇到乙個題,照我的思路差100ms才能過,於是想盡一切辦法做微小優化試圖卡過去,最後雖然過去了,但要是會優化輸入就更好了,於是學習一下這個模板備用 以下模板,具體講解參考參考文章 include include void read int x 普通版 s getchar while s 0 s ...
常用技巧 輸入輸出優化 輸入輸出外掛程式
我們知道cin cout是比較慢的,不過它們可以加速。在 中加入這兩句即可 std ios sync with stdio false std cin.tie 0 加速過後cin的速度與scanf的速度近似 當然,加速過後就不要混用print和cout,scanf和cin了。因為不同步,後果會很嚴重...
C 輸入輸出優化
一般來說,在c 中,cin和cout比scanf和printf慢,scanf和printf比getchar gets 和putchar puts慢 當輸入 輸出範圍超過10 6個整數時,我們就需要手寫讀入 輸出優化 inline int read while c 0 c 9 return x f i...