Initialisierung eines 2D-std::array mit geschweiften Klammern
Beim Arbeiten mit C kann die Initialisierung eines 2D-std::array mit geschweiften Klammern eine Herausforderung sein . Der folgende Codeausschnitt veranschaulicht das Problem:
std::array<std::array<int, 3>, 2> a { {1, 2, 3}, {4, 5, 6} };
Dieser Ansatz kann nicht kompiliert werden, da der Compilerfehler darauf hinweist, dass zu viele Initialisierer für std::array
std::array Internals
std::array ist ein Aggregat, das umfasst ein Array im C-Stil. Um es korrekt zu initialisieren, sind daher äußere geschweifte Klammern für die Klasse selbst und innere geschweifte Klammern für das C-Array-Mitglied erforderlich:
std::array<int, 3> a1 = { { 1, 2, 3 } };
Die Erweiterung dieser Logik auf ein 2D-Array führt zu der folgenden gültigen Initialisierung:
std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };
In diesem Beispiel:
Das obige ist der detaillierte Inhalt vonWie initialisiere ich ein 2D-`std::array` in C mithilfe von geschweiften Klammern korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!