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

C++ 如何同时使用std::vector和std::array?,c++,visual-c++,c++11,stl,C++,Visual C++,C++11,Stl,我用的是这样的东西: std::vector<std::array<double, 3>> myarray; 它不使用VS2012编译 那么如何使用std::array作为std::vector的元素呢 谢谢。恐怕你运气不好:VS2012不支持括号初始化 请注意,您的代码是有效的C++11。我确信push-back中缺少的是一个打字错误 问题是VS2012。使用VS2013或支持C++11的编译器,或显式初始化新元素。您必须长期这样做 std::array<dou

我用的是这样的东西:

std::vector<std::array<double, 3>> myarray;
它不使用VS2012编译

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


谢谢。

恐怕你运气不好:VS2012不支持括号初始化


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

我确信push-back中缺少的是一个打字错误


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

您必须长期这样做

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);
std::数组a;//也许您可以在这里使用大括号初始化?不确定
a[0]=1;
a[1]=5;
a[2]=0;
myarray.push_back(a);

std::vector
没有
pushback
成员。请发布真正的代码。您在代码< PASSUBACK 中间缺少代码>代码>代码>。否则,一些更好的编译器会接受这段代码?这个问题没有错。OP声明编译器并提交sscce。问题归结为一个伪装成C++11兼容的编译器,但它缺少许多功能。@Bathsheba(我没有投票)这不是sscce。它有一个输入错误,仍然缺少include和一个函数。另外,AFAIK MSVC是为数不多的不冒充C++11编译器(值为_cplusplus)的编译器之一,我不知道你为什么称它为伪装。谢谢。但是如何将std::array类型的元素添加到VS2012A
std::array
中的std::vecort中,与普通数组不同,它可以作为单个值进行复制。声明类型为
std::array
的局部变量,并将其传递给
push_back
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);