赞
踩
目录
1. 队列是一种容器适配器,专门用于在FIFO(先进先出)上下文中操作,其中从容器一端插入元素,另一端提取元素。
2. 队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。
3. 底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类,该底层容器应至少支持以下操作:
4. 标准容器类deque和list满足了这些要求。默认情况下,如果没有为deque实例化指定容器类,则使用标准容器deque。
函数声明 | 接口说明 |
queue() | 构造空的队列 |
empty() | 检测队列是否为空,是返回true,否则返回false |
size() | 返回队列中有效元素个数 |
front() | 返回队头元素的引用 |
back() | 返回队尾元素的引用 |
push() | 在队尾将元素val入队列 |
pop() | 将队头元素出队列 |
相关题目:
- class MyStack
- {
- public:
- queue<int> q1;
- queue<int> q2;
- MyStack()
- {
-
- }
-
- void push(int x)
- {
- q2.push(x);
- while (!q1.empty())
- {
- q2.push(q1.front());
- q1.pop();
- }
-
- swap(q1, q2);
- }
-
- int pop()
- {
- int x = q1.front();
- q1.pop();
-
- return x;
- }
-
- int top()
- {
- int x = q1.front();
-
- return x;
- }
-
- bool empty()
- {
- return q1.empty();
- }
- };
因为queue的接口中存在头删和尾插,因此使用vector来封装效率太低,故可以借助list来模拟实现queue。
- #define _CRT_SECURE_NO_WARNINGS 1
-
- #include <iostream>
- #include <list>
- using namespace std;
-
- namespace fyd
- {
- template<class T>
- class Queue
- {
- public:
- Queue(){}
-
- void push(const T& x)
- {
- _c.push_back(x);
- }
-
- void pop()
- {
- _c.pop_front();
- }
-
- T& back()
- {
- return _c.back();
- }
-
- const T& back()const
- {
- return _c.back();
- }
-
- T& front()
- {
- return _c.front();
- }
-
- const T& front()const
- {
- return _c.front();
- }
-
- size_t size()const
- {
- return _c.size();
- }
-
- bool empty()const
- {
- return _c.empty();
- }
-
- private:
- list<T> _c;
- };
- }
感谢各位大佬支持!!!
互三啦!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。