L'initialisation d'un deux dimensions std::vector
Donc, j'ai le texte suivant:
std::vector< std::vector <int> > fog;
et je suis de l'initialisation, il est très naïvement comme:
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);
}
Et il se sent très mal... Est-il une autre façon de l'initialisation d'un vecteur comme cela?
- Je vous recommande un 1d vecteur de la mise en œuvre d'un vecteur 2d si vous n'avez pas besoin de plus d'espace que
std::vector<int>::max_size()
. Ici
Vous devez vous connecter pour publier un commentaire.
Utiliser le
std::vector::vector(comte, valeur)
constructeur qui accepte un taille initiale et une valeur par défaut:Si une valeur autre que zéro, dire
4
par exemple, devait être la valeur par défaut alors:Je devrais aussi mentionner l'initialisation uniforme a été introduit en C++11, qui permet l'initialisation de
vector
, et d'autres récipients, à l'aide de{}
:Il n'y a pas de
append
méthode dansstd::vector
, mais si vous voulez faire un vecteur contenantA_NUMBER
vecteurs deint
, chacun de ceux contenantother_number
zéros, alors vous pouvez faire ceci:Disons que vous voulez initialiser vectoriel 2D, m*n, la valeur initiale à 0
nous pourrions le faire
La syntaxe générale, comme le montre déjà:
Ici, le vecteur " v "peut être visualisé comme un tableau à deux dimensions, avec "A_NUMBER' de lignes, avec "OTHER_NUMBER' de colonnes avec leur valeur initiale définie à 'DEFAULT_VALUE'.
Il peut aussi être écrit comme ceci:
Entrer des valeurs dans un 2-vecteur D est similaire à la saisie des valeurs dans un tableau 2d:
Des exemples ont déjà été souligné dans d'autres réponses....!
Je pense que la meilleure façon de faire qu'il fait est la suivante :
10 est la taille de l'extérieur ou à vecteur global, qui est le principal, et 11 est la taille de l'intérieur de vecteur de type int, et les valeurs initiales sont initialisées à 100! C'est mon premier de l'aide sur la pile, je pense que ça aide quelqu'un.
L'approche recommandée consiste à remplir un constructeur pour initialiser un vectoriel en deux dimensions avec une valeur par défaut
:
où,
M et N sont les dimensions de vos vectoriel 2D.
Supposons que vous souhaitez initialiser deux dimensions entier d'un vecteur à n lignes et m colonnes, chacune ayant une valeur 'VAL'
Écrire comme
Ce VAL peut être un variable de type integer ou constante comme 100