C++的queue本身不支持clear()操作,我们需要手动完成。
方法一 遍历出队列
适用于FIFO队列和优先队列。
while(!q.empty()) q.pop();
方法二 赋空值
适用于FIFO队列。
q=queue<int>();
方法三 用swap与空队列替换
适用于FIFO队列 ↓
inline void clear(queue <int> &q) {
queue <int> empty;
swap(empty,q);
}
clear(q);
适用于优先队列 ↓
inline void clear(priority_queue <int> &q) {
priority_queue <int> empty;
swap(empty,q);
}
clear(q);