vector 对象是如何增长的

vector 对象是如何增长的

当不得不获取新的内存空间时,vectorstring 的实现通常会分配比新的空间需求更大的内存空间。容器预留这些内存空间,可用来保存更多的新元素,这样就不需要每次添加新的元素都重新分配容器的内存空间了。

管理容量的成员函数

reverse 并不改变容器中元素的数量,它仅影响 vector 预先分配多大的内存空间。

只有当需要的内存空间超过当前的容量时,reverse 调用才会改变vector的容量。

如果需求小于或等于当前容量,reverse 什么也不做,特别是,当需求大小小于当前容量时,容器不会回退你内存空间。

也就是说 reverse 永远不会较少容器占用的内存空间,类似的 resize 函数只改变容器中元素的数目,而不是容器的容量。

在新标准中,可以使用 shrink_to_fit 来要求 dequevectorstring 退回不需要的内存空间,但是具体的实现可能忽略此请求。

capacity 和 size

容器的 size 表示当前已经保存的元素的数目。

容器的 capacity 表示不需要重新分配内存的前提下,它最多可以保存的元素数量。

capacity 至少与 size 一样大。

猜你喜欢

转载自www.cnblogs.com/xiaojianliu/p/12497198.html