【STL】顺序容器 — queue

24 篇文章 3 订阅
23 篇文章 0 订阅
作为一种先进先出数据机构,同样不允许遍历行为,不存在迭代器。同stack一样,queue也是将deque作为底层容器。

源码如下:
template <class T, class Sequence = deque<T> >
class queue {
  ....
protected:
  Sequence c; // 底层容器
public:
  bool empty() const { return c.empty(); }
  size_type size() const { return c.size(); }
  reference front() { return c.front(); }
  const_reference front() const { return c.front(); }
  reference back() { return c.back(); }
  const_reference back() const { return c.back(); }
  void push(const value_type& x) { c.push_back(x); }  // 尾端进
  void pop() { c.pop_front(); } // 前端出
};


所有对queue的操作都转调用底层容器deque的的接口。

queue的底层容器默认使用deque,用户可以自己修改:
queue<int,  list<int> > iqueue;

参考:
《STL源码剖析》 P169.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值