Donc, j'ai ce qui suit:
std::vector< std::vector <int> > fog;
et je l'initialise 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 cela semble très faux ... Y a-t-il une autre façon d'initialiser un vecteur comme celui-ci?
std::vector<int>::max_size()
. IciRéponses:
Utilisez le
std::vector::vector(count, value)
constructeur qui accepte une taille initiale et une valeur par défaut:Si une valeur autre que zéro,
4
par exemple, devait être la valeur par défaut, alors:Je devrais également mentionner que l'initialisation uniforme a été introduite dans C ++ 11, qui permet l'initialisation de
vector
, et d'autres conteneurs, en utilisant{}
:la source
std :: vector <std :: vector <int>>
asstatic
?Supposons que vous souhaitiez initialiser le vecteur 2D, m * n, avec une valeur initiale égale à 0
on pourrait faire ça
la source
std::
rend plus long et les gens pourraient aimer une réponse courte et directe; 3) le nom long des variables déroute les débutants. Je suis aussi un débutant, je ne sais pas vraiment à quel point nous avons besoinstd::
, j'ai besoin d'un code exécutable pour que je sache ce que fait chaque variableIl n'y a pas de
append
méthode dansstd::vector
, mais si vous voulez créer un vecteur contenant desA_NUMBER
vecteurs deint
, chacun de ceux contenant desother_number
zéros, vous pouvez le faire:la source
La syntaxe générale, comme déjà décrite, est:
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 sur 'DEFAULT_VALUE'.
Cela peut également être écrit comme ceci:
La saisie de valeurs dans un vecteur 2D est similaire à la saisie de valeurs dans un tableau 2D:
Des exemples ont déjà été mentionnés dans d'autres réponses ....!
la source
Je pense que le moyen le plus simple de le faire est:
10 est la taille du vecteur externe ou global, qui est le principal, et 11 est la taille du vecteur interne de type int, et les valeurs initiales sont initialisées à 100! C'est ma première aide sur la pile, je pense que ça aide quelqu'un.
la source
Supposons que vous souhaitiez initialiser un vecteur entier à deux dimensions avec n lignes et m colonnes ayant chacune la valeur ' VAL '
Écrivez-le comme
Ce VAL peut être une variable de type entier ou une constante telle que 100
la source
L'approche recommandée consiste à utiliser le constructeur de remplissage pour initialiser un vecteur bidimensionnel avec une valeur par défaut donnée:
où, M et N sont les dimensions de votre vecteur 2D.
la source
Mon
c++ STL
code pour initialiser5*3 2-D vector
aveczero
la source