c ++向量初始化

cen*_*cen 9 c++ initialization vector visual-c++ c++11

我一直在使用Code :: Blocks和MingW编译器中的值进行以下向量初始化:

vector<int> v0 {1,2,3,4};
Run Code Online (Sandbox Code Playgroud)

之后,我不得不将代码移动到visual studio项目(c ++),并尝试构建.我收到以下错误:
本地函数定义是非法的

Visual Studio编译器不支持这种初始化?
如何更改代码以使其兼容?
我想初始化vector并同时用值填充它,就像数组一样.

Jam*_*lis 17

Visual C++尚不支持初始化列表.

您可以使用此语法最接近的是使用数组来保存初始化程序,然后使用范围构造函数:

std::array<int, 4> v0_init = { 1, 2, 3, 4 };
std::vector<int> v0(v0_init.begin(), v0_init.end());
Run Code Online (Sandbox Code Playgroud)