Heim  >  Artikel  >  Backend-Entwicklung  >  Kann std::array standardmäßig initialisiert werden?

Kann std::array standardmäßig initialisiert werden?

DDD
DDDOriginal
2024-10-31 03:29:02654Durchsuche

Can std::array be Default-Initialized?

Kann std::array standardmäßig initialisiert werden?

Durch die Deklaration einer Variablen als std::array x; können Sie garantieren, dass alle seine Elemente standardmäßig initialisiert werden. Gemäß dem C 11-Sprachstandard (§8.5/11) wird jedes Objekt ohne expliziten Initialisierer standardmäßig initialisiert.

Sie sollten sich jedoch darüber im Klaren sein, dass die Standardinitialisierung keine Auswirkungen auf Nicht-Klassen-, Nicht-Klassen-Objekte hat. Array-Typen (§8.5/6), wobei ihre Werte unbestimmt bleiben. Ein standardmäßig initialisiertes Array solcher Typen hat beispielsweise unbestimmte Werte.

Wertinitialisierung von Arrays

Wenn Sie alle Array-Elemente auf einen bestimmten Wert initialisieren möchten value T{}, dies ist keine Standardinitialisierung, sondern eine Wertinitialisierung (8,5/7). Sie können Arrays in C 11 einfach mit Werten initialisieren, indem Sie leere Initialisierer verwenden:

<code class="cpp">int plain_int{};
int c_style_array[13]{};
std::array<int, 13> cxx_style_array{};</code>

Dadurch werden alle Array-Elemente mit Werten initialisiert, was zu einem konsistenten Wert von 0 für Ganzzahlen und den Standardwerten für ihre jeweiligen Daten führt Typen.

Das obige ist der detaillierte Inhalt vonKann std::array standardmäßig initialisiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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