


Warum kann ich ein 2D-std::array nicht wie ein normales 2D-Array initialisieren?
Nov 22, 2024 am 06:28 AMDer Grund für die begrenzte Initialisierung von 2D std::array
Obwohl std::array ein sehr prägnanter Container ist, gibt es bestimmte Einschränkungen bei der Initialisierung von 2D-Arrays. Lassen Sie uns untersuchen, warum eine einfache Initialisierung wie die folgende nicht funktioniert:
std::array<std::array<int, 3>, 2> a { {1, 2, 3}, {4, 5, 6} };
Fehler: zu viele Initialisierer für 'std::array<std::array<int, 3u>, 2u>'
Der Schlüssel zum Verständnis dieses Fehlers liegt darin, dass std::array im Wesentlichen eine Datenstruktur ist, die ein C-Array enthält. Daher sind zum Initialisieren eines 2D-Std::Arrays zusätzliche geschweifte Klammern erforderlich:
std::array<std::array<int, 3>, 2> a { {{1, 2, 3}}, // 内层花括号用于初始化 C 数组 {{4, 5, 6}} };
Diese zusätzliche Verschachtelung in geschweiften Klammern ermöglicht es dem Compiler, C-Array-Mitgliedern Initialisierungsdaten korrekt zuzuweisen. Obwohl std::array eine C-Klasse ist, ähnelt ihre Initialisierungssyntax daher der eines C-Arrays.
Das obige ist der detaillierte Inhalt vonWarum kann ich ein 2D-std::array nicht wie ein normales 2D-Array initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

eindeutiger Gebrauch und Phrasenfreigabe

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?
