容器中 reserve和resize
来源:互联网 发布:齿轮测量数据表达 编辑:程序博客网 时间:2024/06/06 15:02
vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!
原因如下:
reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_back()/insert()函数。
resize是改变容器的大小,且在创建对象,因此,调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operator[]操作符,或者用迭代器来引用元素对象。此时再调用push_back()函数,是加在这个新的空间后面的。
原因如下:
reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_back()/insert()函数。
resize是改变容器的大小,且在创建对象,因此,调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operator[]操作符,或者用迭代器来引用元素对象。此时再调用push_back()函数,是加在这个新的空间后面的。
两个函数的参数形式也有区别的,reserve函数之后一个参数,即需要预留的容器的空间;resize函数可以有两个参数,第一个参数是容器新的大小, 第二个参数是要加入容器中的新元素,如果这个参数被省略,那么就调用元素对象的默认构造函数。
不管是调用resize还是reserve,二者对容器原有的元素都没有影响。
0 0
- 容器中 reserve和resize
- 容器中resize和reserve的区别
- vector 中 resize 和reserve
- 容器中reserve()函数与resize()函数
- 【STL学习】容器篇-resize和reserve
- stl 容器 reserve resize
- C++中resize()和reserve()的区别
- vector中resize()和reserve()区别
- vector 中resize和reserve的区别
- C++中vector reserve和resize函数
- vector中resize()和reserve()区别
- STL 中vector的reserve()和resize()
- C++中vector<> resize()和reserve区别
- vector 中resize和reserve的区别
- C++中resize函数和reserve函数
- C++容器中 size(), capacity, reserve() ,resize() 函数讲解
- C++容器中 size(), capacity, reserve() ,resize() 函数
- C++容器中 size(), capacity, reserve() ,resize() 函数讲解
- 希尔排序(Shell Sort)--学习(四)
- 吃4大快速排毒食物 清宿便减肚子
- 链接时出现无法解析的外部符号排错
- 'MPD' object has no attribute 'myIP'
- DOS命令大全
- 容器中 reserve和resize
- 307654 如何安装和使用 windows xp 的故障恢复控制台
- (翻译)视觉理论-Gestalt 理论
- truncate 空间不释放问题
- 简单工厂模式--不是GOF的23个的模式
- 奇数阶幻方的经典方法-罗伯法
- 改掉几个使用Linux命令习惯
- CC认证
- 饮食禁忌!告诉你哪些肉类部位吃不得