我正在尝试打印下面的队列。我已经尝试过创建临时队列并写入然后再写回来的想法。
但它不起作用。
或者我在这里缺少什么?
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;
基本上我想打印这个队列而不会清空它......但我被困在这里。
答案 0 :(得分:7)
没有有效的方法来做这个 * 。但是你可以做到以下几点:
例如,
#include <queue>
#include <iostream>
void print_queue(std::queue 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
进行打印。但是你必须充分意识到从一个不一定是为此设计的类型继承的含义。