我想用C ++问, 如何将数组插入2 dim数组的末尾? 我的代码仍然会从编译器中获得错误,就像这样
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&lt; _OutIt&gt;'的任何直接或间接基类的成员
答案 0 :(得分:0)
最简单的方法不是将数组推到后面,而是向量。以下代码有效,因为对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
}
答案 1 :(得分:0)
这里的问题是你真的没有将矢量A放入矢量myArray中。您正在做的是将一个仅包含10的向量放入myArray中,因为您正在执行此操作....
myarray.push_back(vector<int>{10});
你想要做的是填充你已经完成的矢量A,然后是..
myarray.push_back(A);