2017-03-08 13 views
-1

2次元配列の末尾に配列を挿入するには、C++で をどうやって挿入するのですか?まだ、コンパイラからエラーが発生します
私のコードは、このC++の2次元ベクトルへの配列ポインタの挿入

int *A; 
A = new int[10]; 
vector<vector<int>> myarray; 

for (int j = 0; j < 5; j++) 
{ 
    for (int i = 0; i < 10; i++) 
    { 
     A[i] = i + j; 

    } 

    myarray.push_back(vector<int>{10}); 

    copy(A, A + 10, myarray.back()); 
    } 

のようなものである誤差がある

C2794:「iterator_categoryは」:任意の直接的または間接的な基底クラスのメンバではありません'STD ::にiterator_traits < _OutIt>'

+0

エラーは? –

答えて

0

Easyiestの方法は、バックへの配列が、ベクトルをプッシュすることはありません。次のコードは、vector :: push_backの呼び出しがaのコピーを作成し、それをmyarrayにプッシュバックするので機能します。

vector<int> A(10); 
vector<vector<int>> myarray; 

for (int j = 0; j < 5; j++) 
{ 
    for (int i = 0; i < 10; i++) 
    { 
     A[i] = i + j; 
    } 
    myarray.push_back(A); // push one line for each j=0 to 4 to the back of my array 
} 
0

ここで問題となるのは、ベクトルAをベクトルmyArrayに配置していないということです。あなたが何をしたいか

myarray.push_back(vector<int>{10}); 

はあなたがすでに行っているベクトルAを、移入であるあなたは、あなたがこれをやっているだけなので、MyArrayというに、10を含むベクターを入れているやっている....その後..

myarray.push_back(A); 
関連する問題