模拟实现顺序表Vector容器类

2017-03-03 19:19 阅读 812 次 评论 0 条

什么是Vector?

vector是STL中最常见的容器,它是一种顺序容器,支持随机访问。vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似,不同的地方就是:数组是静态分配空间,一旦分配了空间的大小,就不可再改变了;而vector是动态分配空间,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量。

vector的扩充机制:按照容器现在容量的一倍进行增长。vector容器分配的是一块连续的内存空间,每次容器的增长,并不是在原有连续的内存空间后再进行简单的叠加,而是重新申请一块更大的新内存,并把现有容器中的元素逐个复制过去,然后销毁旧的内存。这时原有指向旧内存空间的迭代器已经失效,所以当操作容器时,迭代器要及时更新。

数据结构--顺序表

Vector简而言之就是一个动态变长的一维数组,因此用它来实现顺序表是非常恰当的。顺序表在数据结构中是比较简单的,没有什么复杂的算法。因此不做图示,有任何疑问可以阅读一下https://www.1024do.com/?p=1226

源代码及注释

 

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:模拟实现顺序表Vector容器类 | 术与道的分享
分类:编程素养 标签:,
1024do.com导航_术与道导航平台

发表评论


表情