如何同时使用std :: vector和std :: array?

时间:2014-06-30 09:53:17

标签: c++ visual-c++ c++11 stl

我正在使用这样的东西:

std::vector<std::array<double, 3>> myarray;

但是当我想在数组中添加新元素时,我尝试使用

myarray.push_back({0, 0 ,0});

它不能用VS2012编译。

那么如何使用std :: array作为std :: vector的元素?

谢谢。

3 个答案:

答案 0 :(得分:2)

你好运,我担心:VS2012不支持大括号初始化。

请注意,您的代码是有效的C ++ 11。

答案 1 :(得分:0)

我确定push_back中缺少_是一个错字。

问题是VS2012。使用VS2013或支持C ++ 11的编译器,或显式初始化新元素。

答案 2 :(得分:0)

你必须做很多事情。

std::array<double, 3> a; // Maybe you can use brace initialization here? Not sure
a[0] = 1;
a[1] = 5;
a[2] = 0;
myarray.push_back(a);