Heim > Backend-Entwicklung > C++ > Wie initialisiere ich ein 2D-`std::array` in C?

Wie initialisiere ich ein 2D-`std::array` in C?

Susan Sarandon
Freigeben: 2024-11-21 01:28:13
Original
870 Leute haben es durchsucht

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

Initialisierung eines 2D-std::array

Trotz seines Aussehens wird ein 2D-std::array in C nicht auf die gleiche Weise initialisiert als 2D-C-Array. Der Hauptgrund dafür ist, dass ein std::array eine Klasse und kein Array ist.

Um ein 2D-std::array zu initialisieren, müssen Sie sowohl Klassenklammern als auch Member-Array-Klammern verwenden:

std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };
Nach dem Login kopieren

Die äußeren geschweiften Klammern {} initialisieren die Klasse selbst, während die inneren geschweiften Klammern {{}} das darin enthaltene Member-C-Array initialisieren Klasse.

Vergleich mit der C-Array-Initialisierung

Um den Unterschied zu verdeutlichen, hier ein Vergleich mit der C-Array-Initialisierung:

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

B b = {{1,2,3}};
A a = {{
     {{1,2,3}},
     {{4,5,6}}
}};
Nach dem Login kopieren

In C, Die äußeren geschweiften Klammern {} initialisieren die Struktur selbst, während die inneren geschweiften Klammern {{}} das Member-Array innerhalb der Struktur initialisieren. Diese Syntax ist analog zur Initialisierung eines 2D-std::array in C, mit der Ausnahme, dass im letzteren Fall die std::array-Klasse zusätzliche äußere Klammern benötigt, um die Klasse selbst zu initialisieren.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich ein 2D-`std::array` in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage