queue.size()和queue.pop_front()非常常用,对于如下使用很容易出错,记录一下:
for(int i=0;i<queue.size();i++)
begin
queue.pop_front();
...
end
随着queue的pop,size()大小就变化了,所以这是一段错误的代码,而且很容易忽略;
下面两种方法都可以:
1.
for(int i=0;i<queue.size();i++)
begin
queue[i];
...
end
queue = '{};
2.
int sz= queue.size();
for(int i=0;i<sz;i++)
begin
queue.pop_front();
...
end
这篇博客讨论了一个常见的C++编程错误,即在for循环中同时使用`queue.size()`和`queue.pop_front()`。由于`pop_front()`会改变队列大小,导致迭代过程中可能出现未预期的行为。博主提供了两种修正方法:1) 使用索引访问队列元素而不删除;2) 先获取队列大小,再进行迭代并删除元素。这个提醒对C++开发者尤其是初学者来说非常有价值。
43

被折叠的 条评论
为什么被折叠?



