【C++】queue(二)

张开发
2026/4/21 3:28:42 15 分钟阅读

分享文章

【C++】queue(二)
2.queue的介绍和使用2.1 queue的介绍queue的文档介绍翻译队列是一种容器适配器专门用于在FIFO上下文(先进先出)中操作其中从容器一端插入元素另一端提取元素。队列作为容器适配器实现容器适配器即将特定容器类封装作为其底层容器类queue提供一组特定的成员函数来访问其元素。元素从队尾入队列从队头出队列。底层容器可以是标准容器类模板之一也可以是其他专门设计的容器类。该底层容器应至少支持以下操作:empty检测队列是否为空size返回队列中有效元素的个数front返回队头元素的引用back返回队尾元素的引用push_back在队列尾部入队列pop_front在队列头部出队列标准容器类deque和list满足了这些要求。默认情况下如果没有为queue实例化指定容器类则使用标准容器deque。2.2 queue的使用函数声明接口说明queue()构造空的队列empty()检测队列是否为空是返回true否则返回falsesize()返回队列中有效元素的个数front()返回队头元素的引用back()返回队尾元素的引用push()在队尾将元素val入队列 pop() 将队头元素出队列二叉树的层序遍历classSolution{public:vectorvectorintlevelOrder(TreeNode*root){vectorvectorintvv;queueTreeNode*q;intlevelsize0;if(root){q.push(root);levelsize1;}while(!q.empty()){vectorintv;while(levelsize--){TreeNode*frontq.front();q.pop();v.push_back(front-val);if(front-left){q.push(front-left);}if(front-right){q.push(front-right);}}vv.push_back(v);levelsizeq.size();}returnvv;}};用队列实现栈classMyStack{public:MyStack(){}voidpush(intx){q2.push(x);while(!q1.empty()){q2.push(q1.front());q1.pop();}swap(q1,q2);}intpop(){intxq1.front();q1.pop();returnx;}inttop(){returnq1.front();}boolempty(){returnq1.empty();}private:queueintq1;queueintq2;};

更多文章