Initialisation d'un std::array 2D avec des accolades
Lorsque vous travaillez avec C, l'initialisation d'un std::array 2D à l'aide d'accolades peut être un défi . L'extrait de code suivant illustre le problème :
std::array<std::array<int, 3>, 2> a { {1, 2, 3}, {4, 5, 6} };
Cette approche ne parvient pas à se compiler, l'erreur du compilateur indiquant trop d'initialiseurs pour std::array
std::array Internals
std::array est un agrégat qui englobe un tableau de style C. Par conséquent, pour l'initialiser correctement, il nécessite des accolades externes pour la classe elle-même et des accolades internes pour le membre du tableau C :
std::array<int, 3> a1 = { { 1, 2, 3 } };
L'extension de cette logique à un tableau 2D entraîne l'initialisation valide suivante :
std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };
Dans cet exemple :
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!