所以我得到了一个多维数组的矢量。 使用此代码
创建向量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>);
但是我收到错误消息:
class:std :: array错误:不允许输入类型名称
我正在使用VisualStudio 2012.有人可以告诉我,我做错了吗?
答案 0 :(得分:3)
std::array
是可复制的,因此如果您想将第一项复制到最后,请说:
matrix.push_back(matrix[0]);
至于您收到错误的原因,是因为您将类型名称传递给push_back
而不是对象。
答案 1 :(得分:0)
行matrix.push_back(std::array<double, 3>);
语法错误。您只需在括号中使用类型名称,而不是对象。
例如,matrix.push_back(std::array<double, 3>{1.0, 2.0, 3.0});
有效。