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 に答える