stl中的序列式容器包括三个:vector,list和deque,对于每种容器,要清楚他内部使用的数据结构,还有相应的迭代器的定义。
vector容器
使用的数据结构
vector容器和数组非常相似,他和数组的区别是数组是静态空间,一旦定义,空间大小就不能改变,而vector在使用过程中空间可以动态增长,
比数组更灵活。vector使用的数据结构是一段连续地址空间,还定义有三个成员变量,分别表示空间起始地址,存放下一个数据的地址和空间的
结束地址,如下图所示:
当剩余空间为0时,向vector容器中插入数据会引发以下步骤:1,重新分配一块足够大的内存空间,2,把当前数据拷贝到该内存空间中,3,释放原内存空间。
迭代器的定义
由于vector使用的是连续地址空间,所以vector的迭代器可