理解reserve与resize

我只是一个虾纸丫 提交于 2019-11-27 01:17:23

1、首先明白capacity与size的概念,capacity表示当前可以容纳多少个元素,size表示当前有多少个元素。为了避免频繁地分配内存,vector预留了一些内存。也就是说:size<=capacity。
2、reserve(n)的目的是:使容器可以容纳n个元素,也就是修改capacity。
  a、如果n>capacity,重新分配内存,把原来的数据copy过来,修改capacity = n。
  b、如果n< = capacity,什么也不做,直接返回。
3、resize(n)的目的是:修改当前元素的个数。 
  a、如果n<size,对尾部多余的元素进行析构。
  b、如果n=size,什么也不做。
  c、如果size<n<=capacity,在尾部补齐元素。没有指定构造方法,使用default构造方法。
  d、如果n>capacity,重新分配内存,把原来的数据copy过来,在尾部补齐元素。没有指定构造方法,使用default构造方法。

转载于:https://www.cnblogs.com/nzbbody/p/3591406.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!