輸入輸出優化

2022-02-03 10:14:46 字數 851 閱讀 6459

code1

inline int read()
code2
inline int read()
code1
#include using namespace std;

void write(int x)

if (x > 9)

write(x / 10);

putchar(x % 10 + '0');

}

code2
inline 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...