我想new在c ++中创建一个动态队列(使用关键字)和list的基础数据结构,但我无法弄清楚它的语法.到目前为止我所拥有的是:
queue<int, list<int>> myQueue = new queue<int,
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚要完成这一行的内容.有人能帮我吗?谢谢
该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)