第4章 序列式容器
4.1 容器的概观与分类
4.1.1 序列式容器
元素都可序,但未排序。C++语
4.2 vector
4.2.1 vector概述
vector的数据安排以及操作方式与array非常相似,唯一差别在空间的运用弹性。array是静态空间,一旦配置了就无法更改。要换一个大点的房子,可以,首先要配置一块新空间,然后将元素从旧地址一一搬到新地址,最后再把就空间释放给内存。
vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素。
4.2.2 vector 定义式摘要
4.2.3 vector的迭代器
Vector支持随机存储,而原生指标天生就有这样的能力。所以vector提供的是Random Access lterators
4.2.4 vector的数据结构
线性连续空间,它以两个迭代器start和finish分别指向配置器得来的连续空间中目前以被人使用的范围,并以迭代器end_of_stroage指向整块连续空间的尾端:
4.2.5 vector的建构与内存管理:constructor,push_back
所谓动态增加大小,并不是在原空间之后续借新空间,而是以原大小两倍另外配置一块较大的空间,然后将原内容拷贝过来,构建新元素,释放原空间。
4.2.6 元素操作 ;pop_back,erase,clear,insert
4.3 list
4.3.1 list概述
list每次安插或删除一个元素时,就配置或释放一个元素空间。
4.3.2 list的节点
4.3.3 list的迭代器
list提供的是Bidrectional lterators
4.3.4 list的数据结构
4.3.5 list构建与内存管理
4.4 deque
4.4.1 deque概述
双向开口的连续线性空间
4.4.3 deque的迭代器
4.5 stack
先进后出,推入push推出pop,没有迭代器。
4.6 queue
先进先出,
4.8 priority_queue
4.8.1 概述
没有迭代器