std::
queue
类模板 <queue>
template <class T, class Container = deque<T> > class queue;
先进先出队列
队列是一种容器适配器,专门设计用于在先入先出场景中操作,
在这种场景中,元素被插入容器的一端,然后从另一端提取。
队列被实现为容器适配器,容器适配器是使用特定容器类的封装对象作为其底层容器的类,
提供了一组特定的成员函数来访问其元素。元素被插入特定容器的“back”,然后从“front”弹出。
底层容器可以是任何标准容器类模板或其他一些专门设计的容器类。容器应支持以下操作:
-
empty
-
size
-
front
-
back
-
push_back
-
pop_front
标准容器类deque和list满足了这些要求。
默认情况下,如果没有为特定的队列类实例化指定容器类,则使用标准容器deque。
☲ 模板参数
-
T
-
所包含元素的类型。
别名为成员类型 queue::value_type。
-
Container
-
存储元素的内部基础容器对象的类型。
其value_type应为T。
别名为成员类型 queue::container_type。
☉ 成员类型
C++98:
成员类型 |
定义 |
注释 |
value_type |
起始模板参数(T) |
元素类型 |
container_type |
第二个模板参数(Container) |
基础容器的类型 |
size_type |
无符号整型 |
通常与size_t相同 |
C++11:
成员类型 |
定义 |
注释 |
value_type |
起始模板参数(T) |
元素类型 |
container_type |
第二个模板参数(Container) |
基础容器的类型 |
reference |
container_type::reference |
通常,value_type& |
const_reference |
container_type::const_reference |
通常,const value_type& |
size_type |
无符号整型 |
通常与size_t相同 |
☞ 成员函数
☣ 非成员函数重载
非成员类特化:
uses_allocator<queue> |
为queue使用分配器(类模板) |