栈
栈提供push和pop等接口,不提供走访功能,也不提供迭代器。
STL中栈不被归类为容器,而被归类为container adapter(容器适配器),这是因为栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可以插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。
SGI STL栈的底层实现是用双向队列deque实现的。
当然也指定可以vector为栈的底层实现:
std::stack<int,std::vector<int>> st;
队列
STL中队列也不被归类为容器,而被归类为container adapter(容器适配器)。
SGI STL中队列一样是以deque为缺省情况下的底部结构。
也可以指定list为底层实现:
std::queue<int,std::list<int>> que;