填充数组数组

Avi*_*ión 1 c++ arrays

这是我的代码:

#include <cstdlib>
#include <stdio.h>

using namespace std;

int main(int argc, char** argv) {

    int a[] = {0,1,2,3,4,5,6,7};
    int array_grande[3][8];

    for(int m=0; m<3; m++) {
        for(int i=0; i<8; i++) {
                array_grande[m] = a[i];
        }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我已经将array_grande声明为一个具有3个位置且每个位置为8个整数的数组,所以我想要的是一个数组数组.

array_grande = {{0,1,2,3,4,5,6,7},{0,1,2,3,4,5,6,7},{0,1,2,3,4,5,6,7}}
Run Code Online (Sandbox Code Playgroud)

我做的代码不起作用,我想这是因为第二个索引array_grande.任何人都可以帮我一把吗?我想尽可能地保留代码.提前致谢

awe*_*oon 8

array_grande[m] = a[i];
Run Code Online (Sandbox Code Playgroud)

你可能想要

array_grande[m][i] = a[i];
Run Code Online (Sandbox Code Playgroud)

或者你可以使用函数copyalgorithm标题:

std::copy(std::begin(a), std::end(a), array_grande[m]);
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用std::array:

std::array<int, 8> a{{0,1,2,3,4,5,6,7}};
std::array<std::array<int, 8>, 3> array_grande;

for(auto& elem: array_grande)
    elem = a;
Run Code Online (Sandbox Code Playgroud)

或者,更简单:

std::array<int, 8> a{{0,1,2,3,4,5,6,7}};
std::array<std::array<int, 8>, 3> array_grande{{a, a, a}};
Run Code Online (Sandbox Code Playgroud)