首页 >后端开发 >C++ >如何在 C 中正确初始化 2D std::array ?

如何在 C 中正确初始化 2D std::array ?

DDD
DDD原创
2024-11-26 10:22:13546浏览

How to Correctly Initialize a 2D std::array in C  ?

了解 2D std::array 初始化语法

尝试初始化 std::array<:array> 类型的 2D 数组时, 2>使用大括号,您可能会遇到错误。这是因为 std::array 是封装 C 样式数组的聚合。为了正确初始化它,类本身需要一个外括号对,而实际的 C 数组需要一个内括号。

考虑以下示例:

std::array<int, 3> a1 = {{1, 2, 3}}; // Valid initialization of a 1D array

将此概念应用于二维数组:

std::array<std::array<int, 3>, 2> a2 {
    {{ {1, 2, 3} }, { {4, 5, 6} }} // Correct initialization
};

在此示例中:

  • 外部大括号 { } 包含整个类初始化。
  • 内部大括号 { { } } 包含各个 C 数组初始化。

正确示例中的附加大括号允许编译器区分在类初始化和所包含数组的初始化之间。这会导致二维数组的正确编译和初始化。

以上是如何在 C 中正确初始化 2D std::array ?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn