无法使用Microsoft Visual Studio 2012列出初始化向量

A. *_*yah 1 c++ vector initializer-list list-initialization

我想用值初始化2 D向量,它给了我这个错误:

IntelliSense: initialization with '{...}' is not allowed for object of type "std::vector<std::vector<int, std::allocator<int>>, std::allocator<std::vector<int, std::allocator<int>>>>"
Run Code Online (Sandbox Code Playgroud)

使用以下内容时,我会得到以上错误?

vector<vector<int>> A =
    { { 0, 0, 0, 0, 0, 0 },
      { 0, 1, 2, 2, 4, 1 },
      { 0, 3, 4, 1, 5, 2 },
      { 0, 2, 3, 3, 2, 4 },
      { 0, 4, 1, 5, 4, 6 },
      { 0, 6, 3, 2, 1, 3 } };
Run Code Online (Sandbox Code Playgroud)

Nat*_*ica 5

MSVS 2012对C++ 11的支持很少 如果我们看一下链接到MSDN的文章

在此输入图像描述

我们将看到它不支持初始化列表,这是您正在使用的初始化所必需的.

我的建议是尽可能升级你的编译器.MSVS 2017拥有最完整的C++ 11支持(除非新标准有任何重大变化).如果你不能这样做那么你可以使用pre-C++ 11解决方案来声明临时数组并初始化临时数组中的向量.