3

我有以下数组:

int const A[4] = { 0, 1, 2, 3 };

我要初始化一个重复数组,如下:

int a[4] = A;

如果我在 cygwin 上运行 g++ 4.8.2,如下所示:

g++ --std=c++11 myfile.cpp

我收到以下错误:

myfile.cpp:16:16: error: array must be initialized with a brace-enclosed initializer
    int a[4] = A;
               ^

但是,显然 " int a[4] = { A };" 也不起作用。有没有一种方法可以a通过A使用简单的赋值语句来初始化我的数组,而无需求助于:

int a[4] = { A[0], A[1], A[2], A[3] };

?

4

2 回答 2

7
std::copy(A, A+4, a)

或者,通过使用 std::array 具有您想要的简单复制方法:

std::array<int, 4>A = {0, 1, 2, 3}
std::array<int, 4>a = A;
于 2014-07-24T17:51:00.767 回答
6

改用标准类std::array

#include <array>

//...

const std::array<int, 4> A = { 0, 1, 2, 3 };
std::array<int, 4 > a = A;
于 2014-07-24T17:50:44.480 回答