Maison > développement back-end > C++ > Comment initialiser un `std::array` 2D en C ?

Comment initialiser un `std::array` 2D en C ?

Susan Sarandon
Libérer: 2024-11-21 01:28:13
original
913 Les gens l'ont consulté

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

Initialisation d'un std::array 2D

Malgré son apparence, un std::array 2D en C ne s'initialise pas de la même manière sous forme de tableau C 2D. La raison fondamentale en est qu'un std::array est une classe, pas un tableau.

Pour initialiser un std::array 2D, vous devez utiliser à la fois des accolades de classe et des accolades de tableau membres :

std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };
Copier après la connexion

Les accolades externes {} initialisent la classe elle-même, tandis que les accolades internes {{}} initialisent le tableau membre C contenu dans le class.

Comparaison avec l'initialisation d'un tableau C

Pour clarifier la différence, voici une comparaison avec l'initialisation d'un tableau C :

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

B b = {{1,2,3}};
A a = {{
     {{1,2,3}},
     {{4,5,6}}
}};
Copier après la connexion

En C, les accolades externes {} initialisent la structure elle-même, tandis que les accolades internes {{}} initialisent le tableau de membres dans la structure. Cette syntaxe est analogue à l'initialisation d'un std::array 2D en C , sauf que dans ce dernier cas, la classe std::array nécessite des accolades externes supplémentaires pour initialiser la classe elle-même.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal