gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 00:57:18 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com