这是我的代码:
#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;
}
我已经将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}}
我做的代码不起作用,我想这是因为第二个索引array_grande.任何人都可以帮我一把吗?我想尽可能地保留代码.提前致谢
Run Code Online (Sandbox Code Playgroud)array_grande[m] = a[i];
你可能想要
array_grande[m][i] = a[i];
或者你可以使用函数copy从algorithm标题:
std::copy(std::begin(a), std::end(a), array_grande[m]);
另一种方法是使用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;
或者,更简单:
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}};