在 C 中,您可以使用 std::array 定义一个简单的 2D 数组,如示例:
std::array<std::array<int, 3>, 2> a = { {1, 2, 3}, {4, 5, 6} };
但是,此初始化失败并出现编译器错误,指出初始化程序太多。造成这种差异的原因在于 std::array
为了正确初始化,C 类及其包含的 C 数组需要单独的大括号:
std::array<std::array<int, 3>, 2> a = { {{{1, 2, 3}}, {{4, 5, 6}}} };
在此更正的代码中:
通过匹配 C 和 C 语法之间的大括号结构,您可以在 C 中使用大括号初始化成功初始化多维数组。
以上是为什么我不能在 C 中对 2D `std::array` 使用简单大括号初始化?的详细内容。更多信息请关注PHP中文网其他相关文章!