如何将数组分配给固定矩阵索引?

How can I assign an array to a fixed matrix index?

别杀我:我是 C++ 菜鸟。

这是code

const int lengthA = 3;
const int lengthB = 4;

int main() {
    double matrix[lengthA][lengthB];
    double temp[lengthB];

    for (int i = 0; i < lengthB; i++) {
        temp[i] = i;
    }

    matrix[1] = temp;
}

如何将数组分配给可以包含它的矩阵的固定索引?我应该在每个(顺序)位置上迭代每个项目吗?我希望我可以简单的过去大块的记忆...

你不能,数组不可赋值。

这里有三种可能的解决方法:

我建议首先使用 std::array(或 std::vector),然后复制,最后才使用指针。

您不直接分配 raw 数组,而是复制它们的内容或处理指向数组的指针

int main() {
    double* matrix[lengthA]; // Array of pointers, each item may point to another array
    double temp[lengthB]; // Caveat: you should use a different array per each row

    for (int i = 0; i < lengthB; i++) {
        temp[i] = i;
    }

    matrix[1] = temp;
}

请记住,这不是现代 C++ 的处理方式(您最好使用 std::array or std::vector

您可以使用 double *matrix[lengthB]; 而不是 double matrix[lengthA][lengthB];