我一直在 Code::Blocks 和 MingW 编译器中使用以下带有值的 vector 初始化:
vector<int> v0 {1,2,3,4};
之后,我不得不将代码移动到一个 visual studio 项目 (c++) 并尝试构建。我收到以下错误:
局部函数定义是非法的
Visual Studio 编译器不支持这种初始化?
我需要如何更改代码以使其兼容?
我想初始化 vector 并同时用值填充它,就像数组一样。
最佳答案
Visual C++ 尚不支持初始化列表。
最接近这种语法的是使用一个数组来保存初始值设定项,然后使用范围构造函数:
std::array<int, 4> v0_init = { 1, 2, 3, 4 };
std::vector<int> v0(v0_init.begin(), v0_init.end());
关于C++ vector 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9575776/