目录

FX-stdqueue

FX-std::queue

std::queue 是 C++ 标准库中的一个容器适配器,它提供了先进先出(FIFO)的数据结构。 std::queue 是基于其他容器(如 std::dequestd::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() 等操作,可以方便地管理队列中的元素。