概念
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():返回队列中元素的数量。