8.8 C
New York

Tableaux irréguliers en C++ – GeeksforGeeks


Améliorer l’article

Enregistrer l’article

J’aime l’article

Améliorer l’article

Enregistrer l’article

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++

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 :

  1. Utiliser un tableau statique de pointeurs
  2. 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++

#embrace <iostream>

utilizing namespace std;

 

int foremost()

{

    

    

    int row1() = { 1, 2, 3, 4 };

    int row2() = { 5, 6 };

    int row3() = { 7, 8, 9 };

 

    

    int* jagged() = { row1, row2, row3 };

 

    int sizes() = { 4, 2, 3 };

 

    cout << "components in matrix kind as comply with" << endl;

    for (int i = 0; i < 3; i++) {

 

        

        int* ptr = jagged(i);

 

        for (int j = 0; j < sizes(i); j++) {

            

            

 

            cout << *(ptr + j) << " ";

            

            

            

        }

        cout << endl;

    }

 

    return 0;

}

Sortir

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++

#embrace <iostream>

utilizing namespace std;

 

int foremost()

{

    

 

    int row, col;

    row = 3;

 

    

    int** arr = new int*(row);

    int sizes() = { 4, 2, 3 };

    

    

 

    

    for (int i = 0; i < row; i++) {

        

        

        

        

        

        

 

        *(arr + i) = new int(sizes(i));

        

    }

 

    

    int num = 1;

    for (int i = 0; i < row; i++) {

        for (int j = 0; j < sizes(i); j++) {

            

            arr(i)(j) = num++;

        }

    }

 

    cout << "components in matrix kind as comply with" << endl;

    for (int i = 0; i < row; i++) {

        for (int j = 0; j < sizes(i); j++) {

            cout << arr(i)(j) << " ";

        }

        cout << endl;

    }

 

    return 0;

}

Sortir

components in matrix kind as comply with
1 2 3 4 
5 6 
7 8 9 

Related Articles

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Latest Articles