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