C++ - Float Arrays的向量

Izz*_*zzo 4 c++ arrays vector

我目前正在尝试创建一个包含浮点数组的向量.我有一段难以忍受的时间.

我有以下代码:

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的向量(而不是数组的向量)尝试了相同的代码,并且没有任何问题.

我认为存在一个我不理解的根本问题.

任何帮助表示赞赏!

Vit*_*meo 6

使用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);.