在STL中,容器被划分为两类:顺序容器和关联式容器(联合容器)。这里的“顺序”和“关联”指的是上层接口表现出来的访问方式,并非底层存储方式。为什么这样划分呢?因为对STL的用户来说,他们并不需要知道容器的底层实现机制,只要知道如何通过上层接口访问容器元素就可以了,否则违背了泛型容器设计的初衷。
STL主要采用向量、链表、二叉树及他们的组合作为底层存储结构来实现容器。尽管一种容器可以采用多种存储方式来实现,但是出于效率的考虑,STL必须为不同的容器类型选择最恰当的存储方式而且不能改变容器的数学模型定义。顺序容器主要采用向量和链表及其组合作为基本存储结构,如堆栈和各种队列,而关联式容器采用平衡二叉搜索树作为底层存储结构