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
836 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!

source:php.cn
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