std::vectorをPODの一時バッファとして使う

>>d金魚さん(で良いのかな?名前間違っていたら本当にすいません)
そのTest_VectorSpeedの実装だとvbの前1MBに0が詰まった後,後ろ1MBにdataが詰まると思います.なので,多分1回ぐらいvectorの内部バッファの再配置(とそれに伴うdelete & new)が起きるので,その分のoverheadが出ていると思います.ただ,それを除いても(resizeではなくてreserveを使っても)明示的なfor文とmemcpyでは決定的な差が残ると思います.
ということで,入力がPODの配列の場合,std::vectorが一時バッファとして優秀かどうか,特にmemcpyと比較してどうか?ということを考えてみました.
あらかじめ,2つ断っておきます.
第1に,以下の議論はコンテナとアルゴリズムの実装に依存する部分が大きいです.ですが,恐らく多くのC++の実装で正しいかと思います.(普段,実装依存な議論をする場合,少なくともVC++7.1とGCC3.2.2の実装を見るんですが,今手元にGCC3.2.2がないので,以下の議論はVC++7.1の実装のみを元にしています.)
第2に,今手元に手ごろな実験環境が無いために実験していなくて,以下の議論はあくまで予想になります.実際実験してみたら「やっぱりvectorはPODの配列を入力とする一時バッファとしてはダメポ」な結論になるかも知れません・・・.明日暇があったら実験してみようと思います.
vectorを一時バッファとして使うときに考えられる,以下の3つについてそれぞれ考えてみました.以下ではdataを入力のPOD配列,szを入力のサイズとします.