中关村在线

软件

vector resize与reserve区别

vector是STL中一种可动态增长的数组容器。

1、 三段代码分别用于测试vector的三种内置方法功能。

2、 新建一个空的向量容器。

3、 输出空向量的大小和容量信息。

4、 通过resize和reserve方法分别调整大小和容量。

5、 分别输出操作后的大小与容量数值。

6、 结果如下所示

7、 调用resize进行扩容时,会自动触发元素的构造函数。因此,在执行resize后查看vector的size和capacity,二者均会发生改变,说明容器不仅完成了空间扩展,还对新增的元素进行了构造初始化,确保其处于有效状态。

8、 reverse仅调整容器容量,改变vector的capacity值,不触发构造函数调用,因此实际元素数量即size保持不变。

9、 vector的clear方法仅重置有效元素个数,不会释放内存空间。因此,若强行访问原内存地址,理论上仍可读取原有数据,但这些数据已标记为无效,属于脏数据,存在安全隐患。

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具