STL通过模板的机制允许推迟对某些类型的选择,直到真正想使用模板或者说对模板进行特化的时候。
STL从广义上讲分3类:slgorithm(算法)、container(容器)、iterator(迭代器)。几乎所有的代码都采用了模板类和模板函数的方式,相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。包括13个头文件:
算法:algorithm functional numeric
容器:dequeue vector list map set stack queue
迭代器:iterator
1.容器
连续存储的元素:
vector(向量) deque(双队列)
向量:连续存储的元素
列表:由节点组成的双向链表,每一个节点包含着一个元素
双队列:连续存储的指向不同元素的指针所组成的数组
集合:由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序
多重集合:允许存在两个次序相等的元素的集合
栈:先进后出的值的排列
队列:先进先出的值的排列
优先队列:元素的次序是由作用于所存储的值对上的某种谓词决定的一种队列
映射:由{键,值}对组成的集合,以某种作用于键对上的谓词排列
多重映射:允许键对有相等的次序的映射