ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
作为一种先进先出数据机构,同样不允许遍历行为,不存在迭代器。同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.