gpt4 book ai didi

c++ - 指向用数组初始化的矩阵的指针数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:49 24 4
gpt4 key购买 nike

我想使用指向矩阵的指针数组在不同矩阵之间循环。我希望使用数组变量初始化这些矩阵的行。由于各种原因,我无法创建新类(class)。

更具体地说,我想要这样的东西:

第一点

#define SIZE size-value
int row1MatrixM [SIZE]= {1,2,3,4,5,1,2,3,4,5};
int row2MatrixM [SIZE] = {2,4,5,7,8,9,10,11,12};
...

然后:

matrixM= {row1MatrixM, row2MatrixM, row3MatrixM .... };

但是编译器说我不能用这种方式初始化矩阵。

现在我有:

matrixM, matrixY, matrixX, matrixZ, etc.

然后我想使用指针访问它们,所以我需要一个指针数组(一个指向 M 的指针,一个指向 Y 的指针,等等)

所以我试着写这样的东西:

#define NUMBER_OF_MATRICES number-of-matrices-value
int[SIZE][SIZE]* arrayOfPointersToMatrices[NUMBER_OF_MATRICES] = {&matrixM,&matrixY,&matrixX, &matrixZ};

我尝试了 [] 和 ** 的不同组合,但似乎没有一个有效。我正在寻找一种允许我访问带括号的指针数组(3D 数组)的类型:

arrayOfPointersToMatrices[x][y][z]

最佳答案

让你的代码工作:

像这样声明数组:

int row1 [NUM_COLS]= {1,2,3,4,5,1,2,3,4,5};
int row2 [NUM_COLS] = {2,4,5,7,8,9,10,11,12};

像这样声明二维矩阵:

int *matrix2d1[NUM_ROWS] = {row1, row2};
int *matrix2d2[NUM_ROWS] = {row3, row4};

像这样声明 3d 矩阵:

int **matrix3d[NUM_MATRICES] = {matrix2d1, matrix2d2};

替代方案(“正确”方式)

我会高度高度高度建议使用 vector 。它们融入了 C++ 语言,并且比所有这些数组/指针工作要简单得多。

关于c++ - 指向用数组初始化的矩阵的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48470719/

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