一、queue简介
template <class T, class Container = deque<T> >
class queue;
参数说明:
- T:元素的类型 queue::value_type
- Container :存储元素的内部底层容器对象的类型, queue::container_type,默认为
queue被实现为容器适配器,是一种 FIFO(先进先出)数据结构,它们是使用特定容器类的封装对象作为其底层容器的类,提供一组特定的成员函数来访问其元素。
标准容器类deque和 列表list都满足其作为queue底层容器要求。默认情况下,使用deque作为其底层容器。
二、queue的成员函数
1、构造函数
(1)构造一个queue适配器,并使用ctnr容器中的元素副本作为其数据内容
explicit queue (const container_type& ctnr);
(2)构造一个queue适配器,并通过移动ctnr容器中的元素作为其数据内容
explicit queue (container_type&& ctnr = container_type());
(3)使用alloc作为参数构造一个空的queue适配器
template <class Alloc> explicit queue (const Alloc& alloc);
(4)使用cntr内元素副本作为其数据内容,使用alloc作为分配器,构造一个queue适配器
template <class Alloc> queue (const container_type& ctnr, const Alloc& alloc);
(5)通过移动cntr内元素作为其数据内容,使用alloc作为分配器,构造一个queue适配器
template <class Alloc> queue (container_type&& ctnr, const Alloc& alloc);
(6)使用queue适配器x内的元素副本作为数据,使用alloc作为分配器,构造一个queue适配器
template <class Alloc> queue (const queue& x, const Alloc& alloc);
(7)通过移动queue适配器x内的元素作为数据,使用alloc作为分配器,构造一个queue适配器
template <class Alloc> queue (queue&& x, const Alloc& alloc);
2、operator=函数
(1)将该适配器的内容通过赋值方式替换为other元素
queue& operator=( const queue& other );
(2)将该适配器的内容通过移动方式替换为other元素
queue& operator=( queue&& other );
3、元素访问
// 返回对队列中第一个元素的引用
reference& front();
// 返回对队列中最后一个元素的引用
reference back ();
4、容量
bool empty(); // 判断容器是否为空
size_type size();// 返回容器中当前元素个数
5、元素操作
// 将值为value的元素放入到适配器队列的末尾
void push( const value_type& value );
// 根据参数args就地构造新元素,并放入到适配器队列的末尾
template< class... Args >
void emplace( Args&&... args );
// 从队列的最前面移除一个元素
void pop();
// 与适配器other交换内容
void swap (queue& other);