STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器)。几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。
在C++标准中,STL被组织为下面13个头文件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>
容器:
向量(vector):连续存储的元素<vector>;
列表(list):由节点组成的双向列表,每个节点包含着一个元素<list>;
双队列(deque):连续存储的指向不同元素的指针所组成的数组<deque>;
集合(set):由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序<set>;
多重集合(multiset):允许存在两个次序相等的元素的集合<set>;
栈(stack):后进先出的值的排列<stack>;
队列(queue):先进先出的值的排列<queue>;
优先队列(priority_queue):元素的次序是由作用于所存储的值对上的某种谓词决定的一种队列<queue>;
映射(map):由{键,值}对组成的集合,以某种作用于键对上的谓词排列<map>;
多重映射(multimap):允许键对有相等的次序的映射<map>;
迭代器
iterator
网友评论