因此,如果我首先保留(100),添加一些元素,然后调整大小(0)(或小于当前大小的任何其他数字),向量是否会将内存重新分配给占用的空间少于100个元素?
答案 0 :(得分:6)
vector<T>::resize(0)
不应导致重新分配或删除已分配的内存,因此在大多数情况下优于vector<T>::clear()
。
有关详细信息,请参阅此问题的答案:std::vector resize downward
答案 1 :(得分:2)
执行vector::resize(0)
或更小的计数而不是当前计数不应取消分配任何内存。但是,它可能会破坏这些元素。
有关std::vector::resize
的参考,请查看std::vector::resize