首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
简述 vector 的实现原理
[问答题]
简述 vector 的实现原理
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(56)
分享
纠错
4个回答
添加回答
2
Phonelykangs
1. 动态数组 2. 内存中具有连续的存储空间,支持快速随机访问,在除了末端的删除较慢。 3.size==capacity时需要扩容, 1. 完全弃用现有的内存空间,重新申请更大的内存空间; 2. 将旧内存空间中的数据,按原有顺序移动到新的内存空间中; 3. 最后将旧的内存空间释放。 vector 扩容是非常耗时的。为了降低再次分配内存空间时的成本,每次扩容时 vector 都会申请比用户需求量更多的内存空间(这也就是 vector 容量的由来,即 capacity>=size),以便后期使用
发表于 2022-10-05 10:06:49
回复(0)
1
雏鹰划空
1. vector:抽象成一个动态数组,支持随机访问、自动扩容。 2. 实现原理: =》 底层是数组的存储结构; =》如果满载,需要扩容(申请更大的空间(两倍)== 复制(转移)数据==释放旧空间)
发表于 2023-11-11 11:45:55
回复(0)
0
vwei
vector是一种动态数组,在内存中具有连续的内存空间,支持快速随机访问,但是插入和删除效率比较低。vector的扩容很耗时,所以为了降低再次分配内存的成本,每次扩容vector都会申请比用户需求量更多的内存空间
发表于 2024-04-08 19:41:48
回复(0)
0
cppers
1.底层是动态数组,支持随机访问,对元素的增删耗时很大。 2.一般申请的内存大小是固定的,如果内存大小不够元素存储的时候,就会进行一次扩容,申请一个更大的内存空间。
发表于 2023-09-13 18:40:43
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++
上传者:
real19931
难度:
4条回答
56收藏
2582浏览
热门推荐
相关试题
运行 ldd hello 可以得到...
百度
C++
评论
(3)
设某二叉树的先序遍历序列为abdg...
树
评论
(1)
之前的经历中单品数据分析的经验丰富...
评论
(1)
什么样的人适合做数据分析
评论
(1)
2022 诺瓦科技 Perl re...
perl
System Verilog
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题