2017-03-08 57 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);