Почему содержимое очереди отображается, когда я использую «цикл цикла», а не когда я использую «цикл цикла»? - PullRequest
1 голос
/ 22 декабря 2019

Я хочу отобразить содержимое очереди в C ++, поэтому я решил скопировать очередь во временную, а затем отобразить элементы новой очереди повторяющихся операций pop. Но следующий код показывает вывод только тогда, когда я использую цикл for.

#include<iostream>
#include<queue>
using namespace std;

int main()
{
    queue<int> Q;
    queue<int> dump = Q;

    Q.push(1);
    Q.push(2);
    Q.push(3);
    Q.push(4);

    // for (dump = Q; !dump.empty(); dump.pop())   //THIS WORKS
    //     cout << dump.front() << '\n';

    while(!dump.empty())              //THIS DOES NOT
    { 
        cout << dump.front() << '\n';
        dump.pop();
    }
}
...