答案:C++中queue和stack是容器适配器,分别遵循FIFO和LIFO原则,定义在头文件中;queue常用操作包括push、pop、front、back、empty和size,适用于广度优先搜索等场景;stack常用操作有push、pop、top、empty和size,常用于递归模拟、括号匹配等;二者默认底层容器为deque,不可直接遍历,访问首/顶元素前需确保非空,可通过循环pop安全清空。

在C++中,queue(队列)和stack(栈)是两种常用的容器适配器,它们分别遵循“先进先出”(FIFO)和“后进先出”(LIFO)的原则。它们定义在
1. queue(队列)的基本使用
queue 是一种先进先出的数据结构,常用于广度优先搜索、任务调度等场景。
常用操作:
- push(element):将元素添加到队尾
- pop():移除队首元素(不返回值)
- front():获取队首元素
- back():获取队尾元素
- empty():判断队列是否为空
- size():返回队列中元素个数
示例代码:
立即学习“C++免费学习笔记(深入)”;
#include iostream>#include
using namespace std;
int main() {
queue
q.push(10);
q.push(20);
q.push(30);
cout cout
q.pop(); // 移除队首
cout
cout return 0;
}
2. stack(栈)的基本使用
stack 是一种后进先出的数据结构,适合处理递归模拟、括号匹配、表达式求值等问题。
常用操作:
- push(element):将元素压入栈顶
- pop():弹出栈顶元素(不返回值)
- top():获取栈顶元素
- empty():判断栈是否为空
- size():返回栈中元素个数
示例代码:
立即学习“C++免费学习笔记(深入)”;
#include#include
using namespace std;
int main() {
stack
s.push(100);
s.push(200);
s.push(300);
cout
s.pop(); // 弹出栈顶
cout
cout return 0;
}
3. 注意事项与常见用法
queue 和 stack 都是容器适配器,默认底层容器分别为 deque 和 deque(stack 也可用 vector 或 list)。
- 不能直接遍历 queue 或 stack,如需访问所有元素,只能逐个 pop
- 调用 front()、back() 或 top() 前必须确保容器非空,否则行为未定义
- 可以用 while(!q.empty()) 或 while(!s.empty()) 安全地清空容器
例如清空队列:
while (!q.empty()) {cout q.pop();
}
基本上就这些。掌握 push、pop、访问首/顶元素以及判空操作,就能在大多数场景中正确使用 queue 和 stack。











