FX-stdqueue
目录
FX-std::queue
std::queue
是 C++ 标准库中的一个容器适配器,它提供了先进先出(FIFO)的数据结构。
std::queue
是基于其他容器(如
std::deque
或
std::list
)实现的,默认情况下使用
std::deque
作为底层容器。
基本用法
1. 包含头文件
要使用
std::queue
,首先需要包含
<queue>
头文件:
#include <queue>
2. 定义和初始化
std::queue
的定义和初始化如下:
std::queue<int> q; // 定义一个存储 int 类型元素的队列
你也可以使用其他容器作为底层容器:
std::queue<int, std::list<int>> q; // 使用 std::list 作为底层容器
3. 常用操作
push()
- 在队列的末尾插入一个元素。
pop()
- 移除队列的第一个元素。
front()
- 访问队列的第一个元素。
back()
- 访问队列的最后一个元素。
empty()
- 检查队列是否为空。
size()
- 返回队列中元素的数量。
示例代码
#include <iostream>
#include <queue>
int main() {
std::queue<int> q;
// 向队列中添加元素
q.push(10);
q.push(20);
q.push(30);
// 访问队列的第一个元素
std::cout << "Front element: " << q.front() << std::endl;
// 访问队列的最后一个元素
std::cout << "Back element: " << q.back() << std::endl;
// 移除队列的第一个元素
q.pop();
// 再次访问队列的第一个元素
std::cout << "Front element after pop: " << q.front() << std::endl;
// 检查队列是否为空
if (!q.empty()) {
std::cout << "Queue is not empty, size: " << q.size() << std::endl;
}
return 0;
}
输出结果
Front element: 10
Back element: 30
Front element after pop: 20
Queue is not empty, size: 2
注意事项
std::queue
不支持随机访问,你只能访问队列的第一个和最后一个元素。pop()
操作只会移除元素,不会返回它。如果你需要访问并移除元素,需要先使用front()
访问元素,然后再调用pop()
。std::queue
的底层容器可以通过模板参数指定,但通常情况下使用默认的std::deque
即可满足需求。
总结
std::queue
是一个简单易用的 FIFO 数据结构,适用于需要按顺序处理元素的场景。通过
push()
、
pop()
、
front()
等操作,可以方便地管理队列中的元素。