C++ 为什么此代码无法打印队列中的所有值?
你能解释一下为什么代码没有打印队列中的所有值吗C++ 为什么此代码无法打印队列中的所有值?,c++,C++,你能解释一下为什么代码没有打印队列中的所有值吗 for (int i = 0; i < q.size(); ++i) std::cout << q.dequeue() << std::endl; for(int i=0;i
for (int i = 0; i < q.size(); ++i)
std::cout << q.dequeue() << std::endl;
for(int i=0;i std::cout每次调用q.dequeue()
时,显然q.size()
将减少,并且您将只输出大约一半的队列元素。因此,您可能希望在开始迭代之前缓存初始大小,例如
const size_t n = q.size();
for (size_t i = 0; i < n; ++i)
std::cout << q.dequeue() << std::endl;
const size\u t n=q.size();
对于(尺寸i=0;i std::cout在逻辑上与上面Paul R的答案相似。队列中的所有项目都将退出队列,因此循环直到队列为空
while (q.size())
{
std::cout << q.dequeue() << std::endl;
}
while(q.size())
{
std::难道不能学习如何编写该队列类是如何定义的吗?没有标准的库容器或适配器具有名为dequeue
的成员函数。