这个的问题场景如下:
在队列中放入元素,每放入一次如果队列中的元素满足条件,则从队列中弹出,如果不满足条件,则需要保留在队列中。
这里在弹出队列中数据的时候,错误的按照习惯使用了pop_front(),因为太多场景都是用的pop_front。这种当时就没有考虑如果前面有留在队列的情况。
比如第一个元素,不满足条件,留在了队列中
第二个元素,满足条件,这个时候,从队列中pop_front()出来的是第一个元素,就引发了逻辑错误了。
其实这个问题,应该在放入队列之前就做判断,满足条件的就不放入队列了,不满足条件的,使用push_back加入队列中,没有必要再整一个放入之后,再弹出的动作。