vector resize 和reserve区别
来源:互联网 发布:linux 搜狗输入法 双拼 编辑:程序博客网 时间:2024/05/22 15:38
主要弄明白capacity和size区别就可以了
先看看《C++ Primer》中对resize()函数两种用法的介绍:
1、resize(n)
调整容器的长度大小,使其能容纳n个元素。
如果n小于容器的当前的size,则删除多出来的元素。
否则,添加采用值初始化的元素。
2、 resize(n,t)
多一个参数t,将所有新添加的元素初始化为t。
而reserver()的用法只有一种
reserve(n)
预分配n个元素的存储空间。
了解这两个函数的区别,首先要搞清楚容器的capacity(容量)与size(长度)的区别。
size指容器当前拥有的元素个数;
而capacity则指容器在必须分配新存储空间之前可以存储的元素总数。
也可以说是预分配存储空间的大小。
resize()函数和容器的size息息相关。调用resize(n)后,容器的size即为n。
至于是否影响capacity,取决于调整后的容器的size是否大于capacity。
reserve()函数和容器的capacity息息相关。
调用reserve(n)后,若容器的capacity<n,则重新分配内存空间,从而使得capacity等于n。
如果capacity>=n呢?capacity无变化。
从两个函数的用途可以发现,容器调用resize()函数后,所有的空间都已经初始化了,所以可以直接访问。
而reserve()函数预分配出的空间没有被初始化,所以不可访问。
原文:https://www.cnblogs.com/jiu0821/p/4415829.html
阅读全文
0 0
- vector resize和reserve区别
- vector resize 和reserve区别
- vector resize reserve区别
- stl::vector reserve和resize的区别
- vector的reserve和resize的区别
- vector中resize()和reserve()区别
- vector 中resize和reserve的区别
- vector的reserve和resize的区别
- vector中的reserve和resize的区别
- C++ vector resize 和 reserve的区别
- vector的reserve和resize区别
- vector中resize()和reserve()区别
- C++中vector<> resize()和reserve区别
- vector 中resize和reserve的区别
- vector的reserve和resize的区别
- resize和reserve区别
- vector的reserve和resize
- vector的reserve和resize
- 第三周
- 购物车自定义view 加减号
- 《Neural Networks and Deep Learning》读书笔记:最简单的识别MNIST的神经网络程序(2)
- 二维码登录
- 支持通配符的括号匹配问题源码+详细流程代码(python)
- vector resize 和reserve区别
- Adobe的安装、激活与汉化
- Gradle仓库配置
- SG函数入门
- C++中预处理、编译、汇编、链接 .cpp-------->.exe
- DS18B20的一些认识
- Android 8.0
- 听见丨Airbnb将投资2亿美元推广自有品牌公寓 Facebook社交VR应用Spaces扩大覆盖面:入驻HTC Vive
- 大牛博客