概念
STL(标准模板库)中的 queue
是 C++ 中的队列容器。实现了队列的基本功能 $FIFO$。
主要特点
- **先进先出 (FIFO)**:
queue
是一种先进先出(FIFO)数据结构,元素的插入在队尾进行,元素的移除在队首进行。
- 底层实现:
queue
通常使用双端队列(deque
)或链表作为底层实现。
- 限制操作:只能访问队首元素(
front()
)、队尾元素(back()
),以及执行入队(push()
)和出队(pop()
)操作。
基本用法
1. 创建和初始化
1 2 3 4 5 6 7 8 9 10 11
| #include <queue> #include <iostream>
using namespace std;
int main() { queue<int> q;
return 0; }
|
2. 元素操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <queue> #include <iostream>
using namespace std;
int main() { queue<int> q;
q.push(1); q.push(2); q.push(3);
cout << "Front: " << q.front() << endl; cout << "Back: " << q.back() << endl;
q.pop();
cout << "Front: " << q.front() << endl; cout << "Back: " << q.back() << endl;
return 0; }
|
3. 队列状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include <queue> #include <iostream>
using namespace std;
int main() { queue<int> q;
if (q.empty()) { cout << "Queue is empty." << endl; }
q.push(1);
cout << "Size: " << q.size() << endl;
return 0; }
|
常用成员函数
元素操作:
push(const T& value)
:在队尾插入一个元素。
pop()
:移除队首元素。
front()
:返回队首元素的引用。
back()
:返回队尾元素的引用。
状态检查:
empty()
:检查队列是否为空,返回布尔值。
size()
:返回队列中元素的数量。