如何使用n个默认值初始化队列?

时间:2015-03-16 19:47:02

标签: c++ c++11 stl queue

假设我有一个带默认构造函数的类。如何通过设置其大小和默认值来初始化构造函数中的队列。

class StandardClass
{};

// will initialize a vector with 5 default standard class 
std::vector<StandardClass> vec(5, StandardClass()); 

我如何对队列做同样的事情?

std::queue<StandardClass> que(5, StandardClass()); ???

2 个答案:

答案 0 :(得分:7)

如果你看一下,例如this std::queue constructor reference您将看到可以传递基础容器的实例(默认为std::deque)。

所以你应该可以做类似

的事情
std::queue<StandardClass> que(std::deque<StandardClass>(5));

答案 1 :(得分:1)

您可以通过以下方式执行此操作

std::queue<StandardClass> que
    ( std::queue<StandardClass>::container_type( 5, StandardClass()  ) );

或更简单

std::queue<StandardClass> que
    ( std::queue<StandardClass>::container_type( 5 ) );