Initialiser un std::vecteur bidimensionnel peut être une tâche fastidieuse. Une approche courante consiste à créer et à ajouter manuellement des lignes au vecteur, comme illustré par le code fourni. Cependant, cette méthode peut être inefficace et sujette à des erreurs.
Une solution alternative consiste à exploiter le constructeur std::vector::vector(count, value). Ce constructeur accepte deux paramètres : le nombre de lignes souhaité et une valeur par défaut pour les éléments de chaque ligne. En spécifiant les valeurs appropriées pour ces paramètres, nous pouvons initialiser le vecteur en une seule instruction :
std::vector<std::vector<int>> fog(ROW_COUNT, std::vector<int>(COLUMN_COUNT)); // Defaults to zero initial value
Si une valeur par défaut autre que zéro est souhaitée, elle peut être spécifiée comme deuxième argument du constructeur :
std::vector<std::vector<int>> fog(ROW_COUNT, std::vector<int>(COLUMN_COUNT, 4));
Initialisation uniforme
C 11 a introduit l'initialisation uniforme, fournissant une autre syntaxe concise pour initialisation d'un vecteur 2D :
std::vector<std::vector<int>> fog { { 1, 1, 1 }, { 2, 2, 2 } };
Cette approche utilise des accolades pour initialiser les lignes du vecteur. Chaque liste intérieure entourée d'accolades représente une ligne, avec chaque élément initialisé à la valeur spécifiée.
En employant ces techniques, nous pouvons initialiser un std::vector 2D de manière efficace et élégante, en évitant les complexités de l'initialisation manuelle. .
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!