首页 > 编程语言 > 详细

C++ Daily《2》----vector容器的resize 与 reserve的区别

时间:2014-04-27 09:09:08      阅读:684      评论:0      收藏:0      [点我收藏+]

C++ STL 库中 vector 容器的 resize 和 reserve 区别是什么?


1. resize 改变 size 大小,而 reserve 改变 capacity, 不改变size.


2. vector内部其实包含了三个指针,

如下图:

bubuko.com,布布扣


resize()------改变 finish 指针

reserve()----改变 end_of_storage 指针


3. [finish, end_of_storage)中的内存是没有调用过vector中的元素的构造函数的。

所以, 如下的这段代码,其实是新开一段10个 Point 的内存,但是没有调用Point 的构造函数。

vector<Point> vec;
vec.reserve(10);


此时的 vec.size() = 0. 而 vec.capaciy() = 10;



C++ Daily《2》----vector容器的resize 与 reserve的区别,布布扣,bubuko.com

C++ Daily《2》----vector容器的resize 与 reserve的区别

原文:http://blog.csdn.net/shoulinjun/article/details/24526875

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!