c++;Sudokou网格初始化 所以我对C++很陌生,现在学习它,有一个工作要做,这会让我难堪。你们是第一个停靠港

c++;Sudokou网格初始化 所以我对C++很陌生,现在学习它,有一个工作要做,这会让我难堪。你们是第一个停靠港,c++,C++,我需要制作一个基本上是2d对象数组的东西。头文件包括行、列和块的单元对象。我有一个9x9对象数组,其中包含基于列、行和内部3x3块的相关指针。我一直坚持的是,下面的一行填写了9x9,但我如何指向每个单元格 或者这是一个单独的东西,这就是我所需要做的一切,只是为了设置网格 void SudokuPuzzle::InitialiseGrid() { for (int row = 0; row < 9; row++) { for (int column = 0;

我需要制作一个基本上是2d对象数组的东西。头文件包括行、列和块的单元对象。我有一个9x9对象数组,其中包含基于列、行和内部3x3块的相关指针。我一直坚持的是,下面的一行填写了9x9,但我如何指向每个单元格

或者这是一个单独的东西,这就是我所需要做的一切,只是为了设置网格

void SudokuPuzzle::InitialiseGrid()
{
    for (int row = 0; row < 9; row++)
    {
        for (int column = 0; column < 9; column++)
        {
            m_gridRows[row].SetCell(column, new SudokuSquare());

            // have the cell point to both it's position in the column and block
        }
    }
}
void SudokuPuzzle::InitialiseGrid()
{
对于(int行=0;行<9;行++)
{
for(int列=0;列<9;列++)
{
m_gridRows[row].SetCell(列,新数独方块());
//使单元格点同时指向其在列和块中的位置
}
}
}

如果您的阵列大小固定,例如3x3,只需使用
std::array

#include <array>
using std::array;

int main()
{
    array<array<int, 3>, 3> sudoku_squares{};

    sudoku_squares[0][1] = 1; // sets cell at first row, second column to 1

    return 0;
}
#包括
使用std::数组;
int main()
{
数独方阵{};
数独格[0][1]=1;//将第一行第二列的单元格设置为1
返回0;
}

在您的情况下,您可以将这些3x3数组中的9个存储在另一个数组中,或者只使用9x9数组,而不需要使用任何指针。在我的示例中,我使用了
int
,但您可以使用完全相同的方式存储
SudokuSquare

可能尝试创建类型为“SudokuSquare”的2d数组

因此,您可以通过以下方式访问任何对象:

sSquare[row][column];

你确定你应该使用指针吗?对我来说似乎没有必要,但如果你已经下定决心了,记得清理一下,或者最好使用type
std::unique\u ptr
sSquare[row][column];