如何将多个值push_back到一个向量中?

时间:2013-08-07 13:37:59

标签: c++ vector std

我之前已经问过这个问题了,我知道在C ++ 11中你可以做到

vector<int> v = {2,5,8,11,14};
vector<int> v{2,5,8,11,14};

v.push_back({x,y});

但它给了我一个编译错误。我正在使用Visual Studio Express 2012。

我如何做到这一点?

编辑:附上错误截图:

enter image description here

3 个答案:

答案 0 :(得分:4)

Visual Studio 2012 does not support vector initialization via initializer lists。 VS2012包含的标准库中缺少许多C ++ 11支持,VS2012 C ++编译器本身支持这种支持。

可悲的是,正如VS2012的情况和gcc 4.7的情况一样,对于新的C ++ 11功能的强大的编译器支持受到部分库支持的阻碍,这似乎总是落后于编译器。

答案 1 :(得分:0)

在您拥有可支持向量初始化列表的编译器之前,您可以使用boost::assign::list_of

答案 2 :(得分:0)

使用此编译器及其标准库,如前所述@Michael Goldshteyn无法完成。但是如果你愿意包含boost库,你可以使用这样的代码:

#include <boost/assign/std/vector.hpp>

using namespace boost::assign;

{
    std::vector< int > myElements;
    myElements += 1,2,3,4,5;
}