来源:我的博客站 OceanicKang |《C++ 数据结构(二)向量(2)扩容向量》
静态空间管理
开辟内部数组 _elem[] 并使用一段地址连续的物理空间
-
_capacity:总容量
-
_size:当前的实际规模 n

若采用静态空间管理策略,容量 _capacity 固定,则有明显的不足
1、上溢(overflow):_elem[] 不足以存放所有元素
尽管此时系统仍有足够的空间
2、下溢(underflow):_elem[] 中的元素寥寥无几
装填因子(load factor):$ \lambda = _ size / _ capacity \ll 50% $
更糟糕的是,一般的应用环境中难以准确预测空间的需求量。
那么,可否使得向量可随实际需求动态调整容量,并同时保证高效率?
动态空间管理
蝉的哲学:身体每经过一段时间得生长,一职无法为外壳容纳,即蜕去原先得外壳,代之以 …
在向量即将发生上溢时,适当地扩大内部数组得容量


本文探讨C++向量的动态空间管理,包括扩容算法实现和策略,如递增式和加倍式扩容,并通过分摊复杂度分析比较两者效率。分析表明,加倍式扩容具有更好的时间复杂度性能。
最低0.47元/天 解锁文章
向量(2)扩容向量&spm=1001.2101.3001.5002&articleId=84887826&d=1&t=3&u=ba87dcc716814e83b7177d5c05708730)
2447

被折叠的 条评论
为什么被折叠?



