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

标签 c++ arrays class object pointers

我的代码是这样的:

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/

相关文章:

c++ - 循环从字符数组中删除过多的空格 (C++)

matlab - 如何在matlab中调用另一个m文件中的类的成员函数?

objective-c - Objective-C 中的静态数组

javascript - 使用 JSON 数据填充 HTML 表,每个数组对象获取一个单元格而不是一行

c++ - 编译如何选择调用哪个构造函数?

JavaScript 类变量

c++ - 与以空结尾的字符串相比,std::string 的效率如何?

c++ - 在 Thrust 仿函数中使用 CURAND

c++ - 删除 C 字符串中的大写字母

arrays - 仅使用交换改变数组顺序