と仮定する
vector<vector<shared_ptr<Base>>> vec
vec.reserve(100)
vec[0].reserve(20) // Error : vector subscript out of range
外部ベクトルと内部ベクトルの両方にメモリを予約しようとしています。が空であることはわかっているvec
ため、内部ベクトル用にメモリを予約できません。私は、resize()
またはshrink_to_fit()
後でできました。しかし、それは私がやりたかったことではないので、resize()
orは役に立ちません。shrink_to_fit()
内部ベクトル用にメモリを予約する意図は、後で内部要素をより高速に検索できるようにメモリを適切に割り当てようとすることです。事前に割り当てられたメモリは高価で混乱しています。
私は質問したい :
- 内部ベクトル用にメモリを予約する方法はありますか
- 「ベクトル用にメモリを確保しないと、メモリの割り当て不良が発生するのではないか」という私の考えは正しいですか?
VC++ 2010 を使用しており、英語が下手で申し訳ありません。