我正在尝试打印下面的队列.我已经尝试过创建临时队列并写入然后再写回来的想法.
但它不起作用.
或者我在这里失踪了什么?
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());
}
Run Code Online (Sandbox Code Playgroud)
我的队列是 queue<int> myQueue;
基本上我想打印这个队列而不会清空它...但我被困在这里.
没有有效的方法来做到这一点*.但是你可以做到以下几点:
例如,
#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);
}
Run Code Online (Sandbox Code Playgroud)
*有一个使用继承的黑客攻击.std::queue有一个受保护的成员C,它是保存数据的底层容器.您可以继承std::queue并添加方法来进行打印C.但是你必须完全了解从一个不一定是为此设计的类型继承的含义.
| 归档时间: |
|
| 查看次数: |
17926 次 |
| 最近记录: |