気になったリファラ その3

http://www.google.co.jp/search?q=overhead+container&hl=ja&lr=lang_ja&ie=UTF-8&start=80&sa=N
少なくともstd::vectorに関しては,私は「動的配列確保するくらいならstd::vector使っておけ」派なんですが,どうなんでしょうか?動的配列に対するoverheadはせいぜい空間的に2,3ワードだけで,後は完全に動的配列に対するoverheadは無いはずで,その他に動的配列に対してvectorが劣る点としてイテレータ経由での操作がわずらわしいとかはあるとは思いますが,そういうのは&v[0]でポインタを取って完全に動的配列として確保された連続空間として使って良いことが保証されていますし,やっぱり動的配列使うくらいならstd::vector使って( ゜д゜)ホスィ…って思いますね.そして,std::vector使うと何と言っても例外安全性の確保が楽ってのがありますね.ただ,例外安全云々言い出すとboost::scoped_arrayあたりも比較対象に入ってきますけれど.なんで,「std::vector使うくらいなら動的配列使う」って意見見るたびにちょびっと(´・ω・`)ショボーンな感じですね.
ちなみに,あんまり関係ないですけれど「Efficient C++」でstd::vectorと動的配列の比較をしていたんですが,あれにはぶち切れましたね.std::vectorの方はpush_backで詰めていく速度を測っているのに対して,動的配列の方は十分な領域をあらかじめ確保して詰めていく速度を測って,その2つを比較していました.これにはさすがに(゜Д゜)ハァ?でした.こういう比較なら当然vectorにあらかじめreserveかけたものの速度を比較するべきだし,もし本当に未知の大きさの入力を再配置かけながら詰めて行く比較をするのなら,コーディングの煩雑さから見て当然std::vectorに軍配が上がるはずだし(厳密にはvalue_typeのコピーのコストとバッファの拡張係数の兼ね合いから速度的にstd::vectorがベストとは言えなくなる可能性もあることはありますが)で,明らかにミスリーディングな比較に愕然としたものです.良い本と思って読んでいただけに,ここの部分だけで自分の中のこの本に対する信用が一気に落ちちゃって(´・ω・`)ショボーンだったことをいまだに覚えています.