vector中一般是三个指针:
- begin
- end
- capacity
begin ~ capacity为vector的容量,决定了vector在堆上所占的内存大小。
begin ~ end为vector所拥有元素数量。
end指针通过
resize
改变,capacity指针通过
reserve
改变。
但是其中要注意的是,resize在缩小时,不会改变capacity指针。
如果要减小vector所占用的内存,要通过swap的方式:
|
|
其结果如下:
|
|
可以发现,
clear
是把元素给删掉了,但是vector占用的堆内存还是一样的。这时候就需要用
swap
方式将之清空。
版权声明:本文为hrbust_cxl原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。