我之前已经问过这个问题了,我知道在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。
我如何做到这一点?
编辑:附上错误截图:
答案 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;
}