1 注意,所谓动态增加大小,并不是在原空间之后接续新空间(因为无法保证原空间之后尚有可供配置的空间),而是以原大小的两倍另外配置一块较大空间,然后将原内容拷贝过来,然后才开始在原内容之后构造新元素,并释放原空间。因此,对vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就失效了,特别小心。
扩充空间:重新配置,移动数据,释放原空间。
特别注意:迭代器失效
erase()函数,迭代器所指向的位置没变,但是值变了,后面的值往前移了。
vector的迭代器实际就是:普通指针
配置原则:原大小为0,则配置1.原大小为n(n!=0),则配置为2*n
vector的插入操作(具体实现策略):
1.备用空间<=新增元素个数
1.1插入点之后的现有元素个数>新增元素个数
1.2插入点之后的现有元素个数<=新增元素个数
2.备用空间>新增元素个数