0
votes

Être confus en interprétant une déclaration de vecteurs multidimensionnels en C ++

Je suis une sorte de nouveau à travailler avec des vecteurs 2D avec C ++ et souvent, je suis confus pendant que je suis Travailler avec des vecteurs 2D en C ++. Je traversais le code de quelqu'un et je suis confus en interprétant cette ligne de code:

vecteur > dp (n, vecteur (m));

ici, m et n sont un nombre de lignes et de colonnes d'une grille.

Quelqu'un peut-il vous expliquer en détail, qu'est-ce que cette déclaration signifie?


1 commentaires

Cela ne fait que appeler diverses constructeurs de vecteur .


3 Réponses :


2
votes

http://www.cplusplus.com/reference/vector/vector/ Vector /

L'un des constructeurs de vecteur prend Param 1 comme le nombre d'éléments et 2 comme valeur de ces éléments. Dans ce cas, vous créez un vecteur nommé DP ... il aura N éléments ... et chacun de ces éléments sera initialisé en tant que nouveau vecteur d'éléments de taille M.

Les valeurs N et M ne concernent vraiment que la taille initiale ... Vecteur se redimenstrera automatiquement à mesure que de nouveaux éléments sont ajoutés ou comme vous le direz explicitement de si vous attendez de la taille significative des changements à venir


0 commentaires

6
votes

Cette ligne: xxx

invoque un constructeur de std :: vecteur .

pour dp , le premier argument est le nombre d'éléments et le deuxième argument est la valeur à insérer ces plusieurs fois.

Le vecteur interne ne spécifie pas la valeur d'argument, qui insérera des valeurs par défaut ( 0 dans le cas de int ).

Donc, dans ce cas, vous créez un vecteur avec les lignes n , dans laquelle chaque ligne a m d'éléments, et chacun des éléments est 0 .


0 commentaires

2
votes

Vous pouvez le casser si cela aide

vector<int> row(m);
vector<vector<int>> dp(n, row);


0 commentaires