我目前正在尝试创建一个包含浮点数组的向量.我有一段难以忍受的时间.
我有以下代码:
float testArray[4] = {20, -3.14/2, 5, -3.14/2};
std::vector<float[4]> inputVector;
std::vector<float[4]>::iterator it = inputVector.begin();
inputVector.insert(it, testArray);
Run Code Online (Sandbox Code Playgroud)
我一直收到一个错误说"数组必须使用大括号括起来的初始化程序初始化"和"无效的数组赋值".我用int的向量(而不是数组的向量)尝试了相同的代码,并且没有任何问题.
我认为存在一个我不理解的根本问题.
任何帮助表示赞赏!
使用std::array.通常不应在现代C++代码中使用C风格的数组.
#include <vector>
#include <array>
int main()
{
std::array<float, 4> testArray{{20, -3.14/2, 5, -3.14/2}};
std::vector<std::array<float, 4>> inputVector;
std::vector<std::array<float, 4>>::iterator it = inputVector.begin();
inputVector.insert(it, testArray);
}
Run Code Online (Sandbox Code Playgroud)
阅读这些问题/答案以获取更多信息:
请注意,这将复制数组及其所有内容.如果要引用现有testArray实例,请std::vector<std::array<float, 4>*>在向量中插入实例时创建 并获取实例的地址:inputVector.insert(it, &testArray);.
| 归档时间: |
|
| 查看次数: |
12357 次 |
| 最近记录: |