速度比較:scanf() vs. cin
問題:
是真的嗎在C 程式中使用scanf()比使用cin?
答案:
是的,scanf() 確實比 C 中的 cin 更快,正如基準測試結果所證明的那樣。
要進行在測試中,編寫了一個簡單的程式來讀取大量數字併計算它們的 XOR 值。程式使用stdio的scanf()和iostream的cin和cout來實現。
結果:
方法 | 執行時間 |
---|---|
scanf() | 6.4秒 |
cin&&&&] | ]24.3秒 |
這個顯著的速度差異是主要歸因於 iostream 函數在與 C 的 stdio 函數保持同步方面的開銷。
優化 cin 的效能:
但是,透過停用與 std::ios 的同步: :sync_with_stdio(false),iostream版本可以達到相當的效果性能:
方法 | 執行時間 |
---|---|
cin和cout(與sync_with_stdio (假)) | 5.5秒 |
透過此優化,iostream 的效能優於 scanf(),成為最快的方法。
結論:
雖然scanf() 本質上比cin 更快,但通常不建議在C 程序中使用它因為:
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3