杭電 OJ 3233 題目,cin/cout 超時,改用 scanf/printf 即 AC,引發性能對比測試。
cout vs printf)與輸入(cin vs scanf)。clock() 計時,freopen 重定向文件 I/O。| 操作 | 函數 | 耗時 |
|---|---|---|
| 輸出 | cout | 5.206 s |
| 輸出 | printf | 6.202 s |
| 輸入 | cin | 38.507 s |
| 輸入 | scanf | 4.204 s |
cout 略快於 printf。scanf 碾壓 cin(快近 10 倍)。scanf,輸出用 cout;或全用 scanf/printf。cin/cout 仍被廣泛使用?本質上流操作編譯期確定類型,理論效率更高,但標準庫實現為通用性犧牲了性能。可通過 ios::sync_with_stdio(false); cin.tie(nullptr); 大幅優化。