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

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

DDD
Freigeben: 2024-11-26 10:22:13
Original
476 Leute haben es durchsucht

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

Verstehen der 2D std::array-Initialisierungssyntax

Beim Versuch, ein 2D-Array vom Typ std::array zu initialisieren, 2> Wenn Sie geschweifte Klammern verwenden, kann es zu einem Fehler kommen. Dies liegt daran, dass std::array ein Aggregat ist, das ein Array im C-Stil kapselt. Um es ordnungsgemäß zu initialisieren, sind sowohl ein äußeres Klammerpaar für die Klasse selbst als auch innere Klammern für das eigentliche C-Array erforderlich.

Betrachten Sie das folgende Beispiel:

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

Anwenden dieses Konzepts auf a 2D-Array:

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

In diesem Beispiel:

  • Die äußeren Klammern { } Schließen Sie die gesamte Klasseninitialisierung ein.
  • Die inneren geschweiften Klammern { { } } schließen die einzelnen C-Array-Initialisierungen ein.

Die zusätzlichen geschweiften Klammern im richtigen Beispiel ermöglichen es dem Compiler, zwischen den Klassen zu unterscheiden Initialisierung und die Initialisierung des enthaltenen Arrays. Dies führt zu einer ordnungsgemäßen Kompilierung und Initialisierung des 2D-Arrays.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich ein 2D-std::array in C korrekt?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage