0
我剛剛學會了如何今天使用ostream_iterator
,但我不知道這是否比正常的for-loop方法更有效。ostream_iterator是否有效?
下面是代碼:
//The first one
vector<int> v = {1, 2, 3, 4, 5};
ostream_iterator<int> osit(cout, " ");
copy(v.begin(), v.end(), osit);
而且
//The second one
vector<int> v = {1, 2, 3, 4, 5};
for (int i : v) cout << i << " ";
哪一個更有效?
預先感謝您!
大部分時間使用流是低效的,特別是當你與底層系統交互時('cout' /'cin' /'fstream'/...),所以你不會看到兩者之間的區別這些方法的「效率」將被流的低效率所掩蓋。 – Holt
基於範圍的for循環需要稍微少一些的輸入。 –
定義「高效」。通過一些措施(如鍵入字符的數量),第二個可能更有效。其他人(例如,不止一次使用同一個'ostream_iterator',輸出int的多個向量的能力),第一個可能是。如果您的度量是CPU週期或內存使用量,那麼結果取決於編譯器的質量和標準庫的編碼。所以,真正的答案是「取決於」。 – Peter