向量push_back 双精度数组

Vector push_back Array of doubles

本文关键字:双精度 数组 back push 向量      更新时间:2023-10-16

所以我得到了一个双精度多维数组的向量。使用此代码创建向量

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>);

但是在这里我收到错误消息:

类:标准::数组错误:不允许类型名称

我正在使用 VisualStudio 2012。有人能告诉我,我做错了什么吗?

std::array是可复制的,所以如果你想把第一项复制到最后,只需说:

matrix.push_back(matrix[0]);

至于为什么会出现错误,那是因为您将类型名称传递给push_back而不是对象。

matrix.push_back(std::array<double, 3>);行是错误的语法。括号中只有一个类型名称,而不是对象。

例如,matrix.push_back(std::array<double, 3>{1.0, 2.0, 3.0});将是有效的。