所以我得到了一个双精度多维数组的向量。
使用此代码创建矢量
std::vector<std::array<double, 3>> matrix;
此后,将矢量填充点和其他信息的xy坐标并进行排序。这是必需的,因此我成为给定2D模型的外形。为了封闭模型的外形,我必须将第一个点的信息复制到向量的末尾。
我知道,如果我有向量的向量,我可以使用这样的代码。
matrix.push_back(std::vector<double>(3, 0));
int p = matrix.size()-1;
matrix[p][0]=matrix[0][0];
matrix[p][1]=matrix[0][1];
matrix[p][2]=matrix[0][2];
由于我使用的是数组向量,因此这似乎是错误的。我试图使用经过稍微修改的代码。
matrix.push_back(std::array<double, 3>);
但是在这里我得到了错误信息:
类:std :: array错误:不允许输入类型名称
我正在使用VisualStudio2012。有人可以告诉我,我做错了吗?
最佳答案
std::array
是可复制的,因此,如果要将第一项复制到末尾,只需说:
matrix.push_back(matrix[0]);
至于为什么会出现错误,这是因为要将类型的名称传递给
push_back
而不是对象。关于c++ - vector push_back double 数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37477598/