看板 EE_DSnP 關於我們 聯絡資訊
上次上課的時候提到 C++ 的 I/O 系統 想到一個問題 所以想來問一下 順便澄清一下自己的觀念 --- 根據個人的經驗 printf 的速度好像比 cout 還快 請問這是真的嗎? 如果是真的 原因又是什麼? 我自己的推論 可能的原因有以下三點 1) 那時候不習慣 cout 的格式化輸出所以寫起來比較麻煩 2) cout 裡面根本就是包 printf 所以直接多一層 function call 3) 不斷用 << 串聯的過程中 每次都多一個 function call 相較之下 printf 只有一次 function call 但是我記得 (1) 的情況並不嚴重 至少沒有大量的 if-else 所以 (2) 或 (3) 是主要原因嗎? 如果是 那麼是哪項比較嚴重 或者都差不多? --- 另外 printf 裡引數數量不固定 其內部對於引數的處理是如何呢? 是對每個引數都做了一次對應到該型別的 function call 嗎? 還是利用其他機制實現? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.192
ric2k1:先寫一個程式試試看 printf 是否真的比 cout 快? 12/06 23:37
david942j:printf比cout快吧 多年OJ經驗是printf快三倍左右 12/06 23:56
keyboardle:小測一下沒得到定論.我想先有明顯差距的程式再討論較好 12/07 02:18
david942j:讀入500萬個int就會有明顯差距了 12/07 17:17
butterfly21:printf vs cout是沒那麼明顯 12/07 17:38
butterfly21:scanf vs cin 根本兩個世界 12/07 17:39
david942j:我自動腦補成比較scanf和cin了... 12/07 18:15