ios_base::sync_with_stdio(false); 的重要性;cin.tie(NULL);
這兩個程式語句在C 兩個程式語句在C 兩個程式語句在C 上中具有重要意義,儘管它們可能不會直接提高性能。
ios_base::sync_with_stdio(false) ;
停用 C 和 C 標準流之間的同步。這允許 C 流擁有獨立的緩衝區,從而可能導致更有效率的 I/O 操作。但是,在混合 C 和 C I/O 時,它可能會導致意外行為。
cin.tie(NULL);
從 cout 解開 cin。預設情況下,綁定流可確保一個流在對另一個流進行操作之前會刷新。停用此功能可確保 cin 操作不會等待 cout 被刷新,從而減少 I/O 延遲。但是,它在顯示資訊時需要手動刷新 cout。
Together 還是 Separate?
同時使用C 和C 指令
當ios_base::sync_with_stdio(false); 時設定後,混合C 風格(例如scanf)和C 風格(例如cout)命令可能會導致問題。這是因為 C I/O 函數需要同步流,但設定sync_with_stdio(false)後可能並非如此。
CodeChef 範例
在提供的 CodeChef 解決方案中,將 scanf/printf 與sync_with_stdio(true) 一起使用可能會導致錯誤,因為 scanf需要同步流,但由於以下原因而被禁用ios_base::sync_with_stdio(false);.
以上是我應該同時使用 `ios_base::sync_with_stdio(false);` 和 `cin.tie(NULL);` 以獲得最佳 C I/O 效能嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!