queue是先进先出(FIFO)的数据结构,有两个口:允许从尾部加入元素、取得头部的元素。没有其他任何方法可以存取queue的其它元素,即queue不允许遍历行为。
SGI STL以deque作为缺省情况下的queue底部结构,queue的实现很简单,代码十分简短。
queue没有迭代器。
为什么STL queue称为容器适配器而不是容器?
答:由于queue以底部容器完成其所有工作,而具有这种“修改某物接口,形成另外一种风貌”的性质,称为adapter(配置器),因此STL queue往往不归为容器,被视为容器适配器。
STL queue源码
// 如果编译器不能根据前面模板参数推导出后面使用的默认参数类型,
// 那么就需要手工指定, 本实作queue内部容器默认使用deque
// 由于queue要求在队尾追加元素, 在队头获取和移除元素
// 所以非常适合使用deque
#ifndef __STL_LIMITED_DEFAULT_TEMPLATES
template <class T, class Sequence = deque<T> >
#else
template <class T, cla