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

至尊寶的傳說(shuō)
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
另外,請(qǐng)注意,C ++流已同步到C流。
因此,它需要付出額外的工作來(lái)保持同步。
還要注意的另一件事是確保您沖洗流的數(shù)量相等。如果您在一個(gè)系統(tǒng)上連續(xù)沖洗流而不是在另一個(gè)系統(tǒng)上沖洗流,則肯定會(huì)影響測(cè)試速度。
在假設(shè)一個(gè)比另一個(gè)更快之前,您應(yīng)該:
從CI / O取消同步C ++ I / O(請(qǐng)參見(jiàn)sync_with_stdio())。
確保沖洗量可比。
- 3 回答
- 0 關(guān)注
- 992 瀏覽
添加回答
舉報(bào)
0/150
提交
取消