6

因此,如果我先保留(100),添加一些元素,然后调整大小(0)(或任何其他小于当前大小的数字),向量是否会重新分配内存以占用少于 100 个元素的空间?

4

2 回答 2

6

vector<T>::resize(0)不应导致重新分配或删除已分配的内存,因此在大多数情况下,最好使用vector<T>::clear().

有关更多详细信息,请参阅此问题的答案:std::vector resize down

于 2012-04-13T00:22:44.210 回答
2

对较小的计数而不是当前计数执行vector::resize(0)or 不应释放任何内存。但是,它可能会破坏这些元素。

有关 的参考std::vector::resize,请查看std::vector::resize

于 2012-04-13T00:36:06.097 回答