Home > Backend Development > C++ > How Do I Initialize a 2D `std::array` in C ?

How Do I Initialize a 2D `std::array` in C ?

Susan Sarandon
Release: 2024-11-21 01:28:13
Original
893 people have browsed it

How Do I Initialize a 2D `std::array` in C  ?

Initialization of 2D std::array

Despite its appearance, a 2D std::array in C is not initialized in the same way as a 2D C array. The fundamental reason for this is that a std::array is a class, not an array.

To initialize a 2D std::array, you must use both class braces and member array braces:

std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };
Copy after login

The outer braces {} initialize the class itself, while the inner braces {{}} initialize the member C array contained within the class.

Comparison to C array initialization

To clarify the difference, here's a comparison to C array initialization:

struct B {
  int array[3];
};
struct A {
  B array[2];
};

B b = {{1,2,3}};
A a = {{
     {{1,2,3}},
     {{4,5,6}}
}};
Copy after login

In C, the outer braces {} initialize the struct itself, while the inner braces {{}} initialize the member array within the struct. This syntax is analogous to the initialization of a 2D std::array in C , except that in the latter case, the std::array class requires additional outer braces to initialize the class itself.

The above is the detailed content of How Do I Initialize a 2D `std::array` in C ?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template