在執行一些測試后,我注意到它printf比cout。我知道它取決于實現,但是在我的Linux機器上printf要快8倍。所以我的想法是混合兩種打印方法:我想cout用于簡單的打印,我計劃printf用于產生巨大的輸出(通常是循環的)。我認為這樣做是安全的,只要我不忘記在切換到其他方法之前先沖洗即可:cout << "Hello" << endl;cout.flush();for (int i=0; i<1000000; ++i) { printf("World!\n");}fflush(stdout);cout << "last line" << endl;cout << flush;這樣可以嗎更新:感謝您的寶貴意見。答案摘要:如果要避免棘手的解決方案,只需不使用endl,cout因為它會隱式刷新緩沖區。使用"\n"代替。如果您產生大量輸出,可能會很有趣。
3 回答

至尊寶的傳說
TA貢獻1789條經驗 獲得超10個贊
另外,請注意,C ++流已同步到C流。
因此,它需要付出額外的工作來保持同步。
還要注意的另一件事是確保您沖洗流的數量相等。如果您在一個系統上連續沖洗流而不是在另一個系統上沖洗流,則肯定會影響測試速度。
在假設一個比另一個更快之前,您應該:
從CI / O取消同步C ++ I / O(請參見sync_with_stdio())。
確保沖洗量可比。
添加回答
舉報
0/150
提交
取消