向量push_back 双精度数组
Vector push_back Array of doubles
所以我得到了一个双精度多维数组的向量。使用此代码创建向量
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});
将是有效的。
相关文章:
- 如何在 C++ 中将双精度数组中的值"force convert"到字符串输出中?
- 对需要双精度数组和结构作为输入C++ DLL 函数的 C# 调用
- 在 C++ 中将双精度数组值转换为字符值
- C# 是否有办法将双精度数组强制转换为类似于C++转换为 char* 的字符串?
- 将协议缓冲区中的二进制双精度数组转换为 JavaScript 数字
- std::copy 将双精度数组复制到浮点数数组
- C++试图返回一个双精度数组的字符串(有点)
- 双精度数组和结果与 WIN32 和 WIN64 上的C++不一致
- 查找双精度数组中的第一个数字
- 如何将双精度数组从 C# 传递到 C++ (DLL)
- 如何将双精度数组从 VB6 传递到 VC++.这段代码有什么问题
- 双精度数组和堆损坏
- 将双精度数组从 Visual Basic 传递到 DLL C++
- 将字符指针强制转换为双精度数组/取消引用
- C++函数在一个双精度数组中查找最大值
- 将值从浮点数组传递到双精度数组时的奇怪行为(C, c++)
- 计算双精度数组中所有元素的和
- PInvoke:返回双精度数组的问题
- 如何在没有库的情况下有效地对双精度数组进行排序
- c++将静态二维双精度数组转换为双精度**