如何在c ++中动态创建具有list的基础数据结构的队列?

Nos*_*tap 0 c++ queue

我想new在c ++中创建一个动态队列(使用关键字)和list的基础数据结构,但我无法弄清楚它的语法.到目前为止我所拥有的是:

queue<int, list<int>> myQueue = new queue<int, 
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚要完成这一行的内容.有人能帮我吗?谢谢

Rob*_*edy 6

new指令返回一个指针,因此你根本不完成行.如果你坚持使用,你需要变量类型作为指针new.右侧的new类型将与您正在初始化的变量的指针类型相同.

queue<int, list<int> >* myQueue = new queue<int, list<int> >;
Run Code Online (Sandbox Code Playgroud)

通常,要动态分配任何类型X,您只需编写new X.也许你有点困惑,因为你的类型的全名有多复杂(逗号,尖括号,多个标记等).您可以使用typedef对其进行简化,以便为名称指定单令牌名称:

typedef queue<int, list<int> > int_list_queue;
Run Code Online (Sandbox Code Playgroud)

然后你可以这样写:

int_list_queue* myQueue = new int_list_queue;
Run Code Online (Sandbox Code Playgroud)

如果你真的不需要指针,那么声明更简单:

queue<int, list<int> > myQueue;
// or
int_list_queue myQueue;
Run Code Online (Sandbox Code Playgroud)