繁体   English   中英

在 C++ 中插入指向二维向量的数组指针

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM