STL vector –resize()方法
vector<int>v;
v.resize(n,val);
n:resize后大小
val:分配给新空间的默认值 不指定默认为0
Obviously:
对于n值的大小,分三种情况:
(1)如果n大于容器当前的大小(即容器的size,和capacity无关),则在容器的末尾插入n-size()个初始值为val的元素
(2)如果n小于容器当前的大小,则保留前n个元素,这样就导致容器的大小(size)变小了。但是这种类型的容器在删除一个元素的时候并不会释放元素本身的内存空间【这也是为了保留这块空间以避免将来要插入新元素的时候又要进行存储空间重分配】,所以容器的容量即capacity其实是没有改变的。
(3)n等于容器当前的大小,则什么也不做。
NOTE
capacity 容器容量
size 容器大小
容量:即capacity,是指容器在自由内存中获得了多大的存储空间,容量为100并不代表容器就有100个元素,可能大小只有10个,剩下的90个都是闲置的未定义内存空间。
大小:即size,指的是容器中实际元素的个数,大小为100就代表容器有100个已经存在的元素。