Maison > développement back-end > C++ > Comment puis-je initialiser efficacement un std::vector 2D en C ?

Comment puis-je initialiser efficacement un std::vector 2D en C ?

Linda Hamilton
Libérer: 2024-12-02 22:52:14
original
888 Les gens l'ont consulté

How Can I Efficiently Initialize a 2D std::vector in C  ?

Initialiser efficacement un std::vecteur 2D

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
Copier après la connexion

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));
Copier après la connexion

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 } };
Copier après la connexion

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!

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