2017-03-08 2 views
-1

Ich möchte in C++, fragen, wie Sie ein Array an das Ende eines 2-Dim-Array einfügen?
mein Code, der Fehler von Compiler bekommen immer noch ist, wie dieseEinfügen von Zeiger auf einen zweidimensionalen Vektor in C++

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()); 
    } 

der Fehler

C2794: ‚iterator_category‘: ist kein Mitglied einer direkten oder indirekten Basisklasse 'std :: iterator_traits'

+0

Und der Fehler ist? –

Antwort

0

Easyest Weg ist nicht ein Array nach hinten zu schieben, aber ein Vektor. Der folgende Code funktioniert, weil der Aufruf von vector :: push_back eine Kopie von a erstellt und myarray zurückschiebt.

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

Das Problem hier ist, dass Sie wirklich nicht den Vektor A in den Vektor, MyArray setzen. Was Sie tun, ist ein Vektor setzen, die nur 10 enthält, in myArray, da Sie dies tun ....

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

Was Sie tun möchten, ist der Vektor A bevölkern, die Sie bereits getan haben, und dann ..

myarray.push_back(A); 
Verwandte Themen