我如何打印队列

How do I print a queue?

本文关键字:打印 队列 何打印      更新时间:2023-10-16

我试图在下面打印一个queue。我尝试了创建温度queue并写入其中的想法,然后写回。

但是它不起作用。

或我在这里缺少什么?

for(int i = 1; i<myQueue.size(); i++)
{
    queue<int> tempQueue;
    cout << myQueue.front() << endl;
    MytempQueue.push(myQueue.front());
    myQueue.pop();
    myQueue.push(myTempQueue.back());
}

我的队列是queue<int> myQueue;

本质上,我想在不清空的情况下打印此queue。但是我被困在这里。

没有有效的方法来执行此*。但是您可以执行以下操作:

  1. 制作队列的副本。
  2. 迭代副本,打印正面,然后弹出。

例如:

#include <queue>
#include <iostream>
    
void print_queue(std::queue<int> q)
{
  while (!q.empty())
  {
    std::cout << q.front() << " ";
    q.pop();
  }
  std::cout << std::endl;
}
int main()
{
  std::queue<int> q;
  for (auto i : {1,2,3,7,4,9,7,2,4}) q.push(i);
  print_queue(q);
}

*使用继承有一个黑客。std::queue具有受保护的成员C,它是持有数据的基础容器。您可以从std::queue继承并添加方法使用C进行打印。但是,您必须完全意识到从不一定为此设计的类型继承的含义。

for(int i = 1; i&lt; myqueue.size(); i )

循环应从0开始,或者检查条件应为&lt; =

queue<int> myQueue;
myQueue.push(1);
myQueue.push(2);
myQueue.push(3);
myQueue.push(4);
myQueue.push(5);
for (size_t i = 0; i < myQueue.size(); i++)
{
    cout << myQueue.front() << endl;
    myQueue.push(myQueue.front());
    myQueue.pop();
}