gpt4 book ai didi

c++ - 实现动态创建的类对象数组(C++)

转载 作者:行者123 更新时间:2023-11-28 07:13:05 26 4
gpt4 key购买 nike

我的代码是这样的:

class cell{
public:
int v;
int x[5];
}

cell **block; //initialized the size of the array as [5][5] in main

现在我真正想做的是将值从一个整数数组复制到上面这个类的每个对象的 v 成员。喜欢:

int arr[5][5];

arr 有整数值。我想这样复制。

for(int i=0; i<5;i++)
for(int j=0;j<3;j++)*(*(block+i)+j).v=arr[i][j];

正如我的 IDE 所说,这肯定是不可能的。它说“;声明丢失。”并指向

*(*(block+i)+j).v=arr[i][j];

这也是我初始化 block 的方式。

  int V=5;
block = new cell*[V+1];
for(int x__=0; x__<=V; ++x__)
{
for(int y__=0; y__<=V; ++y__)
{
block[x__][y__].v=0 ;
}
}

谁能帮我实现这个目标?

最佳答案

你没有正确初始化block:

int V=5;
block = new cell*[V];
for(int x = 0; x < V; ++x)
{
block[x] = new cell;
for(int y = 0; y < V; ++y)
{
block[x][y].v = 0;
}
}

然后您可以使用以下方法复制二维数组:

for(int i = 0; i < V; ++i)
for(int j = 0; j < V; ++j)
block[i][j].v = arr[i][j];

此外,我建议您查看 C++ 中数组的 std::vector,并且您应该在构造函数中初始化 v 成员变量。

关于c++ - 实现动态创建的类对象数组(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20673729/

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