c++ - 对象数组初始化 (C++)

标签 c++ object new-operator dynamic-arrays

大家好,我是 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/

相关文章:

java - winio64.dll 中有哪些方法以及如何使用它们

C++ 数据验证工作不正常和 PDB 错误?

java - 有人尝试过通过 JNI 将 protobuf 对象从 C++ 返回到 Java 吗?

javascript - mysql2返回值困惑

php - WooCommerce 产品 - 显示产品对象的 post_content 值

c++ - 在堆上创建的变量在 C++ 中未被删除

Javascript 'THIS' 值使用构造函数而不分配给变量

c++ - 通过排队的 Qt 信号槽连接发送 QSharedPointers 的 QVector

javascript - 我可以搜索一组函数并运行搜索到的函数吗?

c++ - operator new 可以在施工完成前返回吗?