2017-03-08 31 views
-1

我想問在C++中, 如何將數組插入到2個dim數組的末尾?
我的代碼,它仍然會從編譯器出現錯誤,是這樣在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的。你在做什麼是放,只包含10到myArray的,因爲你這樣做是一個載體....你想要做什麼

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

是填充向量A,你已經做了,然後..

myarray.push_back(A);