簡體   English   中英

對於 output,std::copy 是否比 std::cout 快?

[英]is std::copy faster than std::cout for output?

std::vector<int> v{2,4,6,8,10,12,14,16,18,20};

// print the numbers
    std::copy(v.cbegin(), v.cend(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << '\n';

這里 std::copy 用於寫入標准輸出。 這比在 for 循環中對向量元素使用 std::cout 更快嗎

for(auto element: v) std::cout << element << " ";

我找不到太多關於他們如何寫入 output 緩沖區的信息。

要大致了解兩者的相對性能,請在此處查看基准測試結果: http://quick-bench.com/wGYYPBXEgvLrkyp5gpJOnIpt7A4

我不得不將 output 轉換為std::stringstream而不是std::cout以保持快速工作台的快樂。 它提供了一些關於底層實現的原始性能的見解,但沒有關於它們如何與高度依賴操作系統的 output stream (如std::cout )交互。

因此,僅基於這樣一個簡單的基准很難得出任何明確的結論。 我認為實際上這兩種方法之間很可能沒有足夠的差異,從性能的角度來看,更喜歡其中一種。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM