2017-01-14 2 views
-4

コードがキューのすべての値qを印刷しない理由を説明できますか?このコードは、キュー内のすべての値を印刷できないのはなぜですか?

for (int i = 0; i < q.size(); ++i) 
    std::cout << q.dequeue() << std::endl; 
+1

[mcve]の記述方法を教えてください – Inline

+1

このキュークラスはどのように定義されていますか? 'dequeue'という名前のメンバ関数を持つ標準のライブラリコンテナやアダプタはありません。 –

答えて

2

あなたはq.size()明らかその後、q.dequeue()を呼び出すたびに減少し、そしてあなたのキュー要素の半分の周りにしか出力は以下となります。したがって、イテレーションを開始する前に初期サイズをキャッシュすることをお勧めします。

2

上記のポールRの答えと同様のロジックです。キュー内の項目はすべてデキューされるため、キューが空になるまでループします。

while (q.size()) 
{ 
    std::cout << q.dequeue() << std::endl; 
} 
関連する問題