gpt4 book ai didi

c++ - 如何在 MS 编译器中使用数组初始化 C++ vector/集合?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:45:11 24 4
gpt4 key购买 nike

问题来了。我发现在 C++11 中可以用这种方式用数组初始化 std::vector:

std::vector<int> v = {1, 2, 3, 4};

这看起来非常自然且可读,但问题是它在 Visual Studio 2012 的 MS C++ 编译器中不起作用。因此是否可以在此编译器中启用此功能,或者我应该安装更新版本的 MS 编译器(如果存在的话)?

最佳答案

std::vector<int> v = {1, 2, 3, 4};使用初始化列表,而不是数组。它调用构造函数

vector( std::initializer_list<T> init, 
const Allocator& alloc = Allocator() );

据我所知,你的编译器版本不支持初始化列表,所以如果你想使用它们,你必须升级。作为解决方法,您可以声明一个临时数组并从中初始化 vector 。

int[] tmp = {1,2,3,4};
vector<int> v(std::begin(tmp), std::end(tmp));

关于c++ - 如何在 MS 编译器中使用数组初始化 C++ vector/集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22820280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com