亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

混合cout和printf以獲得更快的輸出

混合cout和printf以獲得更快的輸出

白衣非少年 2019-10-25 15:08:41
在執行一些測試后,我注意到它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())。

  • 確保沖洗量可比。


查看完整回答
反對 回復 2019-10-25
  • 3 回答
  • 0 關注
  • 994 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號