コードがキューのすべての値qを印刷しない理由を説明できますか?このコードは、キュー内のすべての値を印刷できないのはなぜですか?
for (int i = 0; i < q.size(); ++i)
std::cout << q.dequeue() << std::endl;
コードがキューのすべての値qを印刷しない理由を説明できますか?このコードは、キュー内のすべての値を印刷できないのはなぜですか?
for (int i = 0; i < q.size(); ++i)
std::cout << q.dequeue() << std::endl;
あなたはq.size()
明らかその後、q.dequeue()
を呼び出すたびに減少し、そしてあなたのキュー要素の半分の周りにしか出力は以下となります。したがって、イテレーションを開始する前に初期サイズをキャッシュすることをお勧めします。
上記のポールRの答えと同様のロジックです。キュー内の項目はすべてデキューされるため、キューが空になるまでループします。
while (q.size())
{
std::cout << q.dequeue() << std::endl;
}
[mcve]の記述方法を教えてください – Inline
このキュークラスはどのように定義されていますか? 'dequeue'という名前のメンバ関数を持つ標準のライブラリコンテナやアダプタはありません。 –