gpt4 book ai didi

c++ - 为什么动态分配的数组大小在插入时是初始数组的 2*size,而不是 size+1?

转载 作者:行者123 更新时间:2023-11-28 06:29:54 28 4
gpt4 key购买 nike

<分区>

我是一名大学计算机科学专业的学生,​​我一直在尝试更深层次地理解 STL::vector。我发现, vector 实际上是动态数组,这意味着在插入/删除时,如果需要,数组会调整大小。

一位 friend 告诉我,当数组被重新分配时,例如在插入时,它不会创建一个大小为 [original+1] 的新数组,而是创建一个大小为 [2*original] 的新数组。

插入/删除内容时只添加(或减去)一个数组字段,而不是创建一个两倍大的数组,留下许多未使用的索引,这不是更好吗?

我认为这样做的原因是,也许创建一个两倍大的数组,或者重新分配数组,只是每隔一段时间而不是每次插入/删除都有更好的时间复杂度,但是例如,如果我有一个大对象数组,即使这样,重新分配一个两倍于原始大小的数组还是使用 size+1 会更好吗?

感谢您的回复。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com