Maison > développement back-end > C++ > Quel est le moyen le plus efficace d'initialiser un std::vector 2D en C ?

Quel est le moyen le plus efficace d'initialiser un std::vector 2D en C ?

Mary-Kate Olsen
Libérer: 2024-12-04 04:36:12
original
925 Les gens l'ont consulté

What's the Most Efficient Way to Initialize a 2D std::vector in C  ?

Initialisation efficace des std::vectors bidimensionnels

Considérez l'extrait de code suivant :

std::vector< std::vector<int> > fog;
for(int i=0; i<A_NUMBER; i++)
{
    std::vector <int> fogRow;
    for(int j=0; j<OTHER_NUMBER; j++)
    {
         fogRow.push_back(0);
    }
    fog.push_back(fogRow);
}
Copier après la connexion

Cette méthode L'initialisation d'un std::vector bidimensionnel semble inefficace. Une approche alternative exploitant le constructeur std::vector::vector(count, value) est disponible :

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, spécifiez-la comme indiqué ci-dessous :

std::vector<std::vector<int>> fog(
    ROW_COUNT,
    std::vector<int>(COLUMN_COUNT, 4));
Copier après la connexion

De plus, l'initialisation uniforme introduite dans C 11 permet une initialisation concise en utilisant {}:

std::vector<std::vector<int>> fog { { 1, 1, 1 },
                                    { 2, 2, 2 } };
                           
Copier après la connexion

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