混合C 流(cout)和C 的printf 函數確實可以提高輸出速度,特別是在處理大型資料集時。使用這種方法通常是安全的,在方法之間切換之前採取預防措施來刷新緩衝區。
以下是建議的程式碼片段的詳細分析:
cout << "Hello" << endl; cout.flush(); for (int i=0; i<1000000; ++i) { printf("World!\n"); } fflush(stdout); cout << "last line" << endl; cout << flush;
優點:
Flush Before Switch. 🎜>:刷新緩衝區確保在轉換到printf 之前輸出C 流中的所有資料。
:
實現依賴
:混合流和printf 是依賴實現的;不同系統和編譯器>實現依賴// Various output techniques void use_printf() { ... } void use_puts() { ... } void use_cout() { ... } void use_cout_unsync() { ... } void use_stringstream() { ... } void use_endl() { ... } void use_fill_n() { ... } void use_write() { ... } int main() { show_time(use_printf, "Time using printf"); show_time(use_puts, "Time using puts"); show_time(use_cout, "Time using cout (synced)"); show_time(use_cout_unsync, "Time using cout (un-synced)"); show_time(use_stringstream, "Time using stringstream"); show_time(use_endl, "Time using endl"); show_time(use_fill_n, "Time using fill_n"); show_time(use_write, "Time using write"); return 0; }:混合流和printf 是依賴實現的;不同系統和編譯器的具體性能提升可能會有所不同。
基準與最佳化
printf 和put 在寫入NUL 設備時具有顯著的速度優勢。 cout 在以下情況下表現更好寫入實際檔案。
以上是將 C 流與 C 的 printf 混合可以提高輸出速度嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!