大家好,我是 C++ 的新手,在大学里的一个项目中我遇到了一些困难。更具体地说: 我已经为列表和队列创建了一个代码(列表名称 = Chain,队列名称 = Queue,Product 是一个基本上具有 Chains 字段的结构)[顺便说一句,如果有人知道的话,我已经使用过 Sahnis 书(数据结构)。我被困在这里:
int k=4;
Queue<Chain<Product>*>* x = new Queue<Chain<Product>*> [k];
for(int i=1;i<k;i++)
{
x[i] = new Queue<Chain<Product>*> [i+1];
}
在循环中它抛出错误:从 Queue*>* 到 int 的无效转换
有什么想法吗?
最佳答案
应该是
for(int i=0;i<k;i++) // first index is 0
{
x[i] = Queue<Chain<Product>*>();
}
因为
Queue<Chain<Product>*>* x = new Queue<Chain<Product>*> [k];
创建一个 Queue<Chain<Product>*>
的数组对象,而不是指针。
或者如果你想要一个二维数组,你可以使用:
Queue<Chain<Product>*>** x = new Queue<Chain<Product>*> * [k];
for(int 0=1;i<k;i++)
{
x[i] = new Queue<Chain<Product>*> [i+1];
}
为了简化,您基本上是在尝试以下操作:
int* x = new int[4];
for ( int i = 0 ; i < 4 ; i++ )
x[i] = new int[i];
这显然是错误的。
关于c++ - 对象数组初始化 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438593/