我有一个要求:对于一个函数,我得到的输入是一个数字流。我的意思是,该函数在每次调用中都使用一个号码。我使用std::queue
来存储数字流。只有当满足某些条件时,我才需要处理收集的一组数字。如果条件不满足,我需要将所有元素放入队列,然后开始在其中存储新的数字。为了清空队列,我找不到clear()
方法。所以我循环如下:
while(!q.empty())
q.pop();
我得到了一个有效的算法来清除std::queue
我的问题是:为什么std::queue
不支持clear()
函数?
由于std::deque
和td::vector
都支持clear()
方法,因此为std::queue
支持它的技术难点是什么?
还是我上面的用例非常罕见,因此不受支持?