C++中的queue自身是不支持clear操作的,但是雙端隊列deque是支持clear操作的。
方法一
直接用空的隊列對象賦值
queue<int> q1;
// process
// ...
q1 = queue<int>();
方法二
遍歷出隊列
while (!Q.empty()) Q.pop();
方法三
使用swap,這種是最高效的,定義clear,保持STL容器的標准。
void clear(queue<int>& q) {
queue<int> empty;
swap(empty, q);
}
