当前位置:首页 C++ > 正文

C++ queue(STL queue)用法详解

作者:野牛程序员:2023-06-28 15:30:28 C++阅读 3087

C++ queue(STL queue)用法详解

C++ STL(Standard Template Library)中的queue是一个容器适配器(container adapter),它提供了一个FIFO(先进先出)的数据结构。queue基于另一个容器进行实现,默认使用deque(双端队列)作为底层容器。以下是queue的用法详解:

  1. 包含头文件:

    #include <queue>
  2. 创建queue对象:

    std::queue<T> myQueue;

    这里的T表示存储在队列中的元素的类型。例如,如果要创建一个存储整数的队列,可以使用std::queue<int>

  3. 添加元素到队列尾部:

    myQueue.push(element);

    这将在队列的尾部添加一个新的元素element

  4. 访问队列头部元素:

    myQueue.front();

    这将返回队列的头部元素的引用。如果队列为空,则会导致未定义行为。在访问头部元素之前,最好先检查队列是否为空。

  5. 移除队列头部元素:

    myQueue.pop();

    这将从队列中移除头部元素,但不返回它。如果队列为空,则会导致未定义行为。在移除头部元素之前,最好先检查队列是否为空。

  6. 检查队列是否为空:

    myQueue.empty();

    这将返回一个布尔值,指示队列是否为空。如果队列为空,返回true,否则返回false

  7. 获取队列中的元素个数:

    myQueue.size();

    这将返回队列中当前存储的元素的数量。

除了上述常用的成员函数之外,queue还提供了其他一些功能,如swap()函数用于交换两个队列的内容,以及重载的赋值运算符=用于将一个队列的内容赋值给另一个队列。

下面是一个简单的示例代码,展示了queue的用法:

#include <iostream>
#include <queue>

int main() {
  std::queue<int> myQueue;

  // 添加元素到队列尾部
  myQueue.push(10);
  myQueue.push(20);
  myQueue.push(30);

  // 访问队列头部元素
  std::cout << "Front element: " << myQueue.front() << std::endl;

  // 移除队列头部元素
  myQueue.pop();

  // 遍历队列中的元素
  while (!myQueue.empty()) {
    std::cout << myQueue.front() << " ";
    myQueue.pop();
  }
  
  std::cout << std::endl;

  return 0;
}

上述示例代码首先创建了一个存储整数的queue对象,并依次将元素10、20和30添加到队列中。然后,它访问队列的头部元素并输出,接着移除头部元素。最后,通过循环遍历队列中的剩余元素并输出它们。

该示例输出的结果将是:

Front element: 10
20 30

这演示了queue的基本用法。你可以根据自己的需求使用其他成员函数和操作符来操作和处理队列中的元素。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击