为什么用 C++ std::array 创建二维数组需要一对额外的 {}

cod*_*pro 14 c++ stdarray

要使用 std::vector 创建二维数组,您可以

vector<vector<int>> array2d = {{1, 2,  3,  4},
                               {5, 6,  7,  8},
                               {9, 10, 11, 12}};
Run Code Online (Sandbox Code Playgroud)

外层 {} 代表外层向量;内部 {},内部向量。

但是,要使用 std::array 创建二维数组,您需要执行以下操作

array<array<int,4>, 3> array2d = {{{1, 2,  3,  4},
                                   {5, 6,  7,  8},
                                   {9, 10, 11, 12}}};
Run Code Online (Sandbox Code Playgroud)

为什么 std::array 的 std::array 需要一对额外的封闭 {}?