vector
vector 和 array的区别在于空间的运用灵活性。
array是静态空间,一旦配置了就无法更改,如果需要改变,则由客户端来操作:
1、首先配置一块新空间,然后将元素从旧址一一搬往新地址,再把原来的空间释还给系统。
vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助,
vector的实现技术,关键在于其对大小的控制以及重新配置时的数据移动效率。
注意:vector动态增加大小时,并不是在原空间之后开辟新空间(因为无法保证原空间之后尚有可供配置的空间),而是以原大小的两倍另外配置一块较大的空间,然后将原内容拷贝过来,然后才开始在原内容之后构造新元素,并释放原空间。因此,对vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就都失效了。
vector
最新推荐文章于 2024-10-04 20:04:38 发布