对于静态数组而言,其最大的弊端是“静态”。因为当你创建好一个静态数组后,其大小(数组内元素的个数)就已经确定了。因此,当你不确定数组内到底会有多少个元素的时候,静态数组就不适合被使用了,而动态数组则能很好解决这个问题。
动态数组内可以进行的操作有:
Get(i) | 返回位置 i 的值 |
Set(i, value) | 更新位置 i 的值 |
PushBack(value) | 在数组末尾加入一个新的值 |
Remove(i) | 将位置 i 的元素移除掉 |
Size() | 数组中的元素个数 |
动态数组的工作原理:
首先,动态数组会储存以下信息:
1. Capacity:这个动态数组元素的个数(自定义的一个大小)
2. Size:这个动态数组当前已有的元素的个数
其次,当数组空间不足的时候,动态数组会自动创建一个新的数组(其尺寸为原来的两倍大),并且将旧数组的元素复制到新数组内。然后会把pointer指向新的数组,同时删掉旧的数组。
请看以下例子: