目录
- 1 概述
- 2 使用实例
- 3 接口使用
-
- 3.1 construct
- 3.2 empty
- 3.3 size
- 3.4 front
- 3.5 back
- 3.6 push
- 3.7 emplace
- 3.8 pop
- 3.9 swap
1 概述
队列是一种容器适配器,专门设计用于在FIFO上下文(先进先出)中操作,其中元素被插入容器的一端并从另一端提取。
队列被实现为容器适配器,容器适配器是使用特定容器类的封装对象作为其底层容器的类,提供一组特定的成员函数来访问其元素。元素被推入特定容器的“后部”,并从其“前部”弹出。
底层容器可以是标准容器类模板或某些其他专门设计的容器类之一。该底层容器应至少支持以下操作:
- empty 是否为空
- size 队列大小
- front 队首元素
- back 队尾元素
- push_back 入队
- pop_front 出队
标准容器类deque和list满足这些要求。默认情况下,如果没有为特定的队列类实例化指定容器类,则使用标准容器deque。
其类图如下:
2 使用实例
void QueueSuite::pop()
{
std::queue<int> a(std::deque<int>({
10, 20, 30 }));
TEST_ASSERT_EQUALS(10, a.front())
a.pop();
TEST_ASSERT_EQUALS(20, a.front())
a.pop();
TEST_ASSERT_EQUALS(30, a.front())
if(!a.empty())
a.pop();
TEST_ASSERT_EQUALS(true, a.empty())
}
3 接口使用
3.1 construct
std::queue<int> getQueue(int size, int value)
{
return std::queue<int>(std::deque<int>(size, value));
}
void QueueSuite