2D std::array 的初始化
尽管它的出现,C 中的 2D std::array 并没有以相同的方式初始化作为 2D C 数组。其根本原因是 std::array 是一个类,而不是数组。
要初始化 2D std::array,必须同时使用类大括号和成员数组大括号:
std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };
外大括号 {} 初始化类本身,而内大括号 {{}} 初始化类中包含的成员 C 数组。
与 C 数组初始化的比较
为了澄清差异,这里与 C 数组初始化进行比较:
struct B { int array[3]; }; struct A { B array[2]; }; B b = {{1,2,3}}; A a = {{ {{1,2,3}}, {{4,5,6}} }};
在 C 中,外大括号 {} 初始化结构体本身,而内大括号 {{}} 初始化结构体中的成员数组。此语法类似于 C 中 2D std::array 的初始化,但在后一种情况下,std::array 类需要额外的外大括号来初始化类本身。
以上是如何在 C 中初始化 2D `std::array` ?的详细内容。更多信息请关注PHP中文网其他相关文章!