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

时间:2018-10-12 10:40:18

标签: c++ arrays multidimensional-array assign

别杀了我:我是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;
}

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

3 个答案:

答案 0 :(得分:2)

您不能,数组不可分配。

以下是三种可能的解决方法:

我建议先使用std::array(或std::vector),再进行复制,并仅将指针用作最后的选择。

答案 1 :(得分:2)

您不直接分配 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::arraystd::vector可能会更好)

答案 2 :(得分:0)

您可以使用double *matrix[lengthB];代替double matrix[lengthA][lengthB];