Prérequis:
Qu’est-ce qu’un tableau Jagged ?
Un tableau en escalier est un tableau de tableaux tel que les tableaux membres peuvent être de tailles différentes, en termes de tableau 2D pour chaque ligne, nous pouvons avoir un nombre variable de colonnes. Ces varieties de tableaux sont également connus sous le nom de tableaux Jagged.

Tableau Jagged en C++
Exemple:
arr(3)() = 1 2 3 4 // arr(0)(4) : 1st row have 4 columns 5 6 // arr(1)(2) : 2nd row have 2 columns 7 8 9 // arr(2)(3) : third row have 3 columns
Méthodes pour créer un tableau irrégulier
Jagged Array peut être implémenté en C++ de deux manières :
- Utiliser un tableau statique de pointeurs
- Utilisation de tableaux 2D dynamiques
1. Utiliser un tableau statique de pointeurs
- créer des nombres ‘n’ tableaux 1D (ligne1, ligne2, ligne3, ….. and so on.) où n est le nombre de lignes, la taille de chaque tableau de lignes sera le nombre de colonnes, c’est-à-dire le nombre d’éléments dans chaque tableau de lignes montrera non. de colonnes dans cette ligne particulière.
- Créez un tableau 1D de pointeurs, en stockant l’adresse de base de chaque tableau de lignes.
- Créer un autre tableau 1D Tailles() stocker la taille de chaque tableau de lignes (cela aide lors de l’itération de chaque élément).
Pour connaître le tableau de pointeurs, reportez-vous à un tableau de pointeurs article.
Voici la mise en œuvre de la méthode ci-dessus:
C++
|
components in matrix kind as comply with 1 2 3 4 5 6 7 8 9
2. Utilisation de tableaux dynamiques 2D
- Créer une ligne, des variables col stockant no. de rangées et non. de colonnes.
- Créez un tableau de lignes dynamique arr (tableau de pointeurs) qui peut stocker un nombre de « lignes » d’adresses.
- Stockez la taille dans un autre tableau 1D Sizes() (taille de no. ou Rows) pour stocker no. de colonnes pour chaque élément de ligne dans le tableau de lignes. (Cela aide lors de l’itération de chaque colonne pour chaque ligne).
- Créez un tableau de colonnes dynamiques pour chaque élément de ligne avec la taille : tailles (i)
- Maintenant, chaque élément de ligne dans le tableau Row a l’adresse de base de chaque tableau Column.
Voici la mise en œuvre de la méthode ci-dessus:
C++
|
components in matrix kind as comply with 1 2 3 4 5 6 7 8 9