[英]Insert array pointer to a 2 dimension vector in C++
我想问在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<_OutIt>”的任何直接或间接基类的成员
最简单的方法不是将数组推到后面,而是一个向量。 以下代码有效,因为对 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
}
这里的问题是您实际上并没有将向量 A 放入向量 myArray 中。 您正在做的是将一个仅包含 10 个的向量放入 myArray,因为您正在执行此操作....
myarray.push_back(vector<int>{10});
您想要做的是填充您已经完成的向量 A,然后..
myarray.push_back(A);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.