C++ c+中的二维对象数组+;?

C++ c+中的二维对象数组+;?,c++,arrays,pointers,C++,Arrays,Pointers,二维数组,如:单元格**计分表。分配后: scoreTable = new Ceil*[10]; for(int i = 0 ;i<10;i++) scoreTable[i] = new Ceil[9]; scoreTable=新Ceil*[10]; 对于(inti=0;iscoreTable[i][j]=new-Cell(i,j)。您正在尝试将单元格*放入单元格 您必须创建二维指针数组: auto scoreTable = new Ceil**[10]; for(int i =

二维数组,如:
单元格**计分表
。分配后:

scoreTable = new Ceil*[10]; 
for(int i = 0 ;i<10;i++) 
scoreTable[i] = new Ceil[9]; 
scoreTable=新Ceil*[10];

对于(inti=0;i
scoreTable[i][j]=new-Cell(i,j)
。您正在尝试将
单元格*
放入单元格

您必须创建二维指针数组:

auto scoreTable = new Ceil**[10]; 
for(int i = 0 ;i<10;i++) 
    scoreTable[i] = new Ceil*[9]; 

一旦像这样分配了数组,就已经有了一个二维数组
单元格
,因此不需要使用
new
关键字来更改值


如果你给你的
Cell
类一个方法,比如
SetValue(i,j)
,那么你可以这样使用它:
scoredable[i][j]。SetValue(i,j);

我想建议改用
std::vector
。它更容易跟踪

您可以将上面的所有代码替换为

std::vector< std::vector< Cell> > scoreTable(10, std::vector<Cell>(9));
对于新列:

for(size_t row = 0; row < scoreTable.size(); ++row) {
  scoreTable[row].push_back(Cell());
}
for(size_t row=0;row

<>不需要<代码>新< /C> >或代码>删除< /C> >

你是否考虑过使用嵌套的<代码> STD::vector < /Cord>?阅读我知道这一点,但是它应该做很多改变,因为当我把java转换成C++时,这个问题出现了,SCORTETABLE是一个类成员。erloads
operator[]
,因此就像一个数组。我想得太多了,谢谢你,只需添加一个新方法,这很好。
 scoreTable.push_bach(std::vector<Cell>(9));
for(size_t row = 0; row < scoreTable.size(); ++row) {
  scoreTable[row].push_back(Cell());
}