0
今日はostream_iterator
の使用方法を学んだだけですが、これが通常のforループと比較して効率的かどうかはわかりません。ostream_iteratorは効率的ですか?
//The first one
vector<int> v = {1, 2, 3, 4, 5};
ostream_iterator<int> osit(cout, " ");
copy(v.begin(), v.end(), osit);
そして
、より効率的である1//The second one
vector<int> v = {1, 2, 3, 4, 5};
for (int i : v) cout << i << " ";
:ここ
は、コードのですか?
ありがとうございます!
ストリームを使用するのは、ほとんどの場合、特に基礎となるシステム( 'cout' /' cin'/'fstream'/...)とやり取りするときに効率が悪いので、両方の方法の違いは見えませんメソッドの「効率」はストリームの非効率性によって隠されます。 – Holt
レンジベースのforループでは、わずかにタイピングが必要です。 –
「効率的」を定義します。タイプされた文字の数のようないくつかの尺度によって、2番目の方がより効率的です。他の人(例えば、同じ 'ostream_iterator'を複数回使用してintの複数のベクトルを出力する能力)によって、最初のものが可能です。測定値がCPUサイクルまたはメモリ使用量の場合、結果はコンパイラの品質と標準ライブラリのコーディングによって異なります。だから、本当の答えは「それは依存している」ということです。 – Peter