queue队列

https://img2.mukewang.com/5b850e5200010b4502930497.jpg

按照上面的代码如果我输入:

Hello World   Here I Come

我理解的是输出:

Hello World   Here I Come

 

为什么运行的时候输出的是

Hello World

https://img1.mukewang.com/5b850e5f000136be05190137.jpg

森林海
浏览 771回答 1
1回答

慕斯王

你好,关键的地方在于:for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;q.size();&nbsp;i++) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;q.front(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.pop(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}你使用了for循环进行输出,但是要知道,你在for循环里q.pop() 之后q.size()就少一位了呀,所以for循环执行的次数根本没有25次,当执行到World的最后一个单词d的时候,i已经和q.size()一样大了。输出队列的方法应该是while循环:while(q.size()>0) { &nbsp;&nbsp;&nbsp;cout<<q.front(); &nbsp;&nbsp;&nbsp;q.pop(); }
打开App,查看更多内容
随时随地看视频慕课网APP