Maison > Article > développement back-end > Pourquoi ne puis-je pas utiliser l'initialisation simple entre accolades pour les `std::array` 2D en C ?
En C, vous pouvez définir un tableau 2D simple à l'aide de std::array, comme indiqué dans l'exemple :
std::array<std::array<int, 3>, 2> a = { {1, 2, 3}, {4, 5, 6} };
Cependant, cette initialisation échoue avec une erreur du compilateur, indiquant qu'il y en a trop initialiseurs. La raison de cet écart réside dans le fait que std::array
Pour une initialisation correcte, des accolades distinctes sont requises pour la classe C et son tableau C contenu :
std::array<std::array<int, 3>, 2> a = { {{{1, 2, 3}}, {{4, 5, 6}}} };
Dans ce code corrigé :
En faisant correspondre la structure des accolades entre la syntaxe C et C, vous pouvez initialiser avec succès des tableaux multidimensionnels à l'aide de l'initialisation des accolades en C.
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!