小编Wee*_*are的帖子

使用作用域限定的queue :: swap清空std :: queue是否违反任何规则?

我在许多情况下都在使用队列,队列可能增长到数百个。不幸的是,如果有必要的话,没有一种解决队列清空的方法。我想知道是否使用作用域队列进行交换,然后销毁作用域队列,是否破坏了任何内存分配/管理规则?

以下代码段是我建议的示例。如果长时间使用,似乎工作正常,不确定结果。

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

c++ queue scope

6
推荐指数
2
解决办法
113
查看次数

标签 统计

c++ ×1

queue ×1

scope ×1