vector中resize()和reserve()区别
vector中resize()和reserve()区别
本博客转载自:https://blog.csdn.net/jocodeoe/article/details/9230879
先看看《C++ Primer》中对resize()函数两种用法的介绍:
1.resize(n)
调整容器的长度大小,使其能容纳n个元素。
如果n小于容器的当前的size,则删除多出来的元素。
否则,添加采用值初始化的元素。
2.resize(n,t)
多一个参数t,将所有新添加的元素初始化为t。
而reserver()的用法只有一种
3.reserve(n)
预分配n个元素的存储空间。
了解这两个函数的区别,首先要搞清楚容器的capacity(容量)与size(长度)的区别。
size指容器当前拥有的元素个数;
而capacity则指容器在必须分配新存储空间之前可以存储的元素总数。
也可以说是预分配存储空间的大小。
resize()函数和容器的size息息相关。调用resize(n)后,容器的size即为n。
至于是否影响capacity,取决于调整后的容器的size是否大于capacity。
reserve()函数和容器的capacity息息相关。
调用reserve(n)后,若容器的capacity
vector<int> a; a.reserve(100);
a.resize(50);
cout<<a.size()<<" "<<a.capacity()<<endl;
a.resize(150);
cout<<a.size()<<" "<<a.capacity()<<endl;
a.reserve(50);
cout<<a.size()<<" "<<a.capacity()<<endl;
a.resize(50);
cout<<a.size()<<" "<<a.capacity()<<endl;
vector中resize()和reserve()区别相关推荐
- std::vector中resize()和reserve()区别
在STL容器中vector用的还是比较多的,但是在使用时,会对resize()和reserve()的使用产生迷惑,现在就对这一情况做个对比: resize():改变的是size()与capacity( ...
- vector中resize和reserve接口的异同
初次接触这两个接口也许会混淆,其实接口的命名就是对功能的绝佳描述,resize就是重新分配大小,reserve就是预留一定的空间.这两个接口即存在差别,也有共同点.下面就它们的细节进行分析. ...
- vector的 resize()和reserve()的区别
为了支持快速随机访问,vector将元素连续存储--每个元素紧挨着前一个元素存储. 关于vector对象是如何改变容器大小? resize(n) 调整容器元素个数为n,如果n小于容器的原size,则删 ...
- vector的resize()和reserve()函数
关于resize函数和reserve函数的介绍这篇博客有:https://blog.csdn.net/ma2595162349/article/details/59745204 下面来看一下vecto ...
- vector的resize函数和reserve函数
博客原文:C++基础篇 -- vector的resize函数和reserve函数_VampirEM_Chosen_One的博客-CSDN博客,写的特别好,谢谢原博主. 正文: 对于C++的vector ...
- C++ vector中的resize,reserve,size和capacity函数讲解
前言 在介绍resize(),reserve(),size()和capacity()函数之前,先简单介绍一下c++中vector的概念. vector:顺序容器(可变大小数组).支持快速随机访问.在尾 ...
- vector中的reserve() 与 resize()
resize()与reserve()都是vector容器中的方法: resize():改变了capacity()和size() reserve():增加了vector的capacity(),但是它的s ...
- vector中的push_back(涉及到动态分配),resize,reserve,swap方法解析
目录 一.vector的push_back解析 二.size和capacity 三.resize和reserve 1.resize 2.reserve 四.关于reserve的应用 五.内存释放 sw ...
- c++中list、vector、map 、set区别
List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]. Vector对于随机 ...
最新文章
- Maven最佳实践:划分模块
- 使用 Java Native Interface 的最佳实践
- MySQL SQL的概述
- BZOJ 2134: 单选错位
- 修改场景默认pawn的方法
- 【牛客 - 327牛客寒假算法基础集训营2 I】处女座的测验(二)(积性函数性质,数论,素数唯一性分解,STL)
- shardingsphere 分片策略_ShardingSphere系列(二) 分片策略
- 利用wxpython编写GUI
- AudioBufferSourceNode
- mysql 单向复制_Mysql 复制(Replication)实现
- BAT中for循环如何执行多条命令
- Java基础入门(八)之面向对象二
- 利用express启一个server服务
- RS485通讯的工作原理?
- 台式电脑连不上wifi怎么办
- 计算机专业个税,税后工资个税计算器
- 社会软件力量:六度分隔理论
- Fabric CA的部署与使用
- C语言实现简易五子棋
- 蝴蝶展翅鸿蒙云飞,关于蝴蝶的伤感句子 开辟鸿蒙,谁为情种?都只为风月情浓...
热门文章
- c++ 课程设计之车票管理系统
- 数据结构笔记(二十二)--已知先序中序求树
- 遍历二叉树(四种方式:前序、中序、后序、层序)
- Git 使用方法(一)-本地篇
- php發送郵件_PHP发送邮件类库PHPMailer的简单使用
- 苹果手机查看python代码的免费软件-Python实现抢购IPhone手机
- 微信防撤回python代码_python实现微信防撤回神器
- layui select第一次无法选中_Windows 10 无法访问共享的解决办法大全
- 基于react antd的新的tag和Badge的组合使用
- 计算机科学技术考研内容,计算机科学技术考研考什么科目