【C++】C++清空队列(queue)的操作


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);

猜你喜欢

转载自blog.csdn.net/Ljnoit/article/details/107605444