21xrx.com
2024-11-05 18:51:56 Tuesday
登录
文章检索 我的文章 写文章
如何使用C++遍历队列(queue)
2023-07-08 15:12:16 深夜i     --     --
C++ 遍历 队列 queue

队列(queue)是一种常见的数据结构,它是一种先进先出(First-In-First-Out, FIFO)的数据结构。在C++中,队列可以通过STL(Standard Template Library)中的queue类来实现。

在STL中,queue类位于 头文件中,使用时需要包含该头文件。

使用queue类可先创建一个队列对象,声明方式如下:


#include<queue>

using namespace std;

queue<int> q; //创建一个整型队列

在上述代码中,使用了模板类queue 来创建一个整型队列q。模板类queue还可以用于创建字串队列、浮点数队列等。

在创建队列对象后,就可以向队列中添加元素。可以使用队列的push()函数来向队列中添加元素,如下所示:


q.push(5); //向队列中添加数字5

q.push(6); //向队列中添加数字6

以上代码将数字5和6添加到了队列中,此时队列中的元素顺序为5(队列头)->6(队列尾)。

除了向队列中添加元素,还可以使用队列的pop()函数来删除队列中的元素(也就是队列头的元素)。如下所示:


q.pop(); //删除队列头的元素5

使用队列时,一般会使用循环来遍历队列中的元素。在C++中,可以使用while或者for循环来遍历队列中的元素。遍历队列主要使用队列的front()函数来获取队列头的元素。

例如,使用while循环遍历队列中的元素,代码如下所示:


while(!q.empty()){ //当队列不为空时

  int temp = q.front(); //获取队列头的元素

  cout<<temp<<endl; //输出队列头的元素

  q.pop(); //删除队列头的元素

}

以上代码使用了while循环,检查队列是否为空。当队列不为空时,使用front()函数获取队列头的元素,并输出该元素。最后使用pop()函数删除队列头的元素。

在C++中遍历队列还可以使用for循环,代码如下所示:


for(queue<int> tmp = q; !tmp.empty(); tmp.pop()){

  cout<<tmp.front()<<endl;

}

以上代码首先将queue对象复制给一个tmp对象,使用front()函数获取队列头的元素,并输出该元素,最后使用pop()函数删除队列头的元素。

综上所述,通过STL中的queue类,可以轻松地实现队列的操作,包括向队列中添加元素、删除队列头的元素以及遍历队列中的元素。无论是在算法竞赛中还是在工程开发中,队列都是常用的数据结构,掌握使用queue提供的操作方法,能够让代码更具扩展性和鲁棒性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复