- ベストアンサー
STLのvectorのデフォルトの予約要素数は?
STLのvectorコンテナの、あらかじめメモリに確保される要素数はreserve関数で変更できますが、reserve関数を使わない時のデフォルトの予約要素数っていくつかご存知の方いますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
それは使うSTLによって実装が違うと思いますが ためしに自作のallocatorをかませて、bcc及びvc++2005で確認しましたが どちらもpush_backやreserveを行うまでメモリの確保は発生しませんでした。 つまり普通は0だと思います。 ちなみにメモリの拡張のされ方はbccとvc++2005では違いました。 bccは最初のpush_backで最初に256個の要素が確保されましたが、 vc++2005では1個のみでした。 その辺の細かい実装方法についてはSTLのソースを見るしかないと思います。
その他の回答 (1)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.2
実装依存です。 規格では規定されていません。
質問者
お礼
なるほど、分かりました。初期値に頼らず必ずreserveしたいと思います。
お礼
VC++の1個はかなり非効率ですね。必ずreserveを呼んで変更しないとヤバそうです。情報ありがとうございました。