STL教程(十一): 适配器--queue

一、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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chiang木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值