我在许多情况下都在使用队列,队列可能增长到数百个。不幸的是,如果有必要的话,没有一种解决队列清空的方法。我想知道是否使用作用域队列进行交换,然后销毁作用域队列,是否破坏了任何内存分配/管理规则?
以下代码段是我建议的示例。如果长时间使用,似乎工作正常,不确定结果。
#include <cstdlib>
#include <iostream>
#include <queue>
int
main()
{
std::queue<int> foo;
foo.push(10);
foo.push(20);
foo.push(30);
std::cout << "size of before foo: " << foo.size() << '\n';
{
std::queue<int> bar;
swap(foo, bar);
}
std::cout << "size of after foo: " << foo.size() << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)