6

したがって、最初に予約(100)し、いくつかの要素を追加してから、resize(0)(または現在のサイズよりも小さい他の数値)すると、ベクトルは100要素よりも少ないスペースでメモリを再割り当てしますか?

4

2 に答える 2

6

vector<T>::resize(0)割り当てられたメモリの再割り当てまたは削除を引き起こしてはなりません。このため、ほとんどの場合、よりも望ましいvector<T>::clear()です。

詳細については、この質問への回答を参照してください:std::vectorサイズを下に変更

于 2012-04-13T00:22:44.210 に答える
2

vector::resize(0)現在のカウントではなく、またはより小さなカウントを実行しても、メモリの割り当てが解除されないようにする必要があります。ただし、これらの要素を破壊する可能性があります。

のリファレンスについてはstd::vector::resizestd :: vector::resizeをご覧ください。

于 2012-04-13T00:36:06.097 に答える