Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Tableaux multidimensionnels C++

Tableaux multidimensionnels C++

Dans ce tutoriel, nous allons découvrir les tableaux multidimensionnels en C++. Plus précisément, comment les déclarer, y accéder et les utiliser efficacement dans notre programme.

En C++, nous pouvons créer un tableau d'un tableau, appelé tableau multidimensionnel. Par exemple :

int x[3][4];

Ici, x est un tableau à deux dimensions. Il peut contenir un maximum de 12 éléments.

Nous pouvons considérer ce tableau comme un tableau avec 3 lignes et chaque ligne a 4 colonnes comme indiqué ci-dessous.

Les tableaux tridimensionnels fonctionnent également de la même manière. Par exemple :

float x[2][4][3];

Ce tableau x peut contenir un maximum de 24 éléments.

Nous pouvons connaître le nombre total d'éléments du tableau simplement en multipliant ses dimensions :

2 x 4 x 3 = 24

Initialisation de tableaux multidimensionnels

Comme un tableau normal, nous pouvons initialiser un tableau multidimensionnel de plusieurs façons.

1. Initialisation d'un tableau à deux dimensions

int test[2][3] = {2, 4, 5, 9, 0, 19};

La méthode ci-dessus n'est pas préférée. Une meilleure façon d'initialiser ce tableau avec les mêmes éléments de tableau est donnée ci-dessous :

int  test[2][3] = { {2, 4, 5}, {9, 0, 19}};

Ce tableau a 2 lignes et 3 colonnes, c'est pourquoi nous avons deux lignes d'éléments avec 3 éléments chacune.

2. Initialisation d'un tableau tridimensionnel

int test[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 
                 2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};

Ce n'est pas une bonne façon d'initialiser un tableau à trois dimensions. Une meilleure façon d'initialiser ce tableau est :

int test[2][3][4] = { 
                     { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} },
                     { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }
                 };

Remarquez les dimensions de ce tableau tridimensionnel.

La première dimension a la valeur 2 . Ainsi, les deux éléments composant la première dimension sont :

Element 1 = { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} }
Element 2 = { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }

La deuxième dimension a la valeur 3 . Notez que chacun des éléments de la première dimension a trois éléments chacun :

{3, 4, 2, 3}, {0, -3, 9, 11} and {23, 12, 23, 2} for Element 1.
{13, 4, 56, 3}, {5, 9, 3, 5} and {5, 1, 4, 9} for Element 2.

Enfin, il y a quatre int nombres à l'intérieur de chacun des éléments de la deuxième dimension :

{3, 4, 2, 3}
{0, -3, 9, 11}
... .. ...
... .. ...

Exemple 1 :Tableau à deux dimensions

// C++ Program to display all elements
// of an initialised two dimensional array

#include <iostream>
using namespace std;

int main() {
    int test[3][2] = {{2, -5},
                      {4, 0},
                      {9, 1}};

    // use of nested for loop
    // access rows of the array
    for (int i = 0; i < 3; ++i) {

        // access columns of the array
        for (int j = 0; j < 2; ++j) {
            cout << "test[" << i << "][" << j << "] = " << test[i][j] << endl;
        }
    }

    return 0;
}

Sortie

test[0][0] = 2
test[0][1] = -5
test[1][0] = 4
test[1][1] = 0
test[2][0] = 9
test[2][1] = 1

Dans l'exemple ci-dessus, nous avons initialisé un int à deux dimensions tableau nommé test qui a 3 "lignes" et 2 "colonnes".

Ici, nous avons utilisé le for imbriqué boucle pour afficher les éléments du tableau.

  • la boucle externe de i == 0 à i == 2 accéder aux lignes du tableau
  • la boucle interne de j == 0 à j == 1 accéder aux colonnes du tableau

Enfin, nous imprimons les éléments du tableau à chaque itération.

Exemple 2 :Prise d'entrée pour un tableau à deux dimensions

#include <iostream>
using namespace std;

int main() {
    int numbers[2][3];

    cout << "Enter 6 numbers: " << endl;

    // Storing user input in the array
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cin >> numbers[i][j];
        }
    }

    cout << "The numbers are: " << endl;

    //  Printing array elements
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cout << "numbers[" << i << "][" << j << "]: " << numbers[i][j] << endl;
        }
    }

    return 0;
}

Sortie

Enter 6 numbers: 
1
2
3
4
5
6
The numbers are:
numbers[0][0]: 1
numbers[0][1]: 2
numbers[0][2]: 3
numbers[1][0]: 4
numbers[1][1]: 5
numbers[1][2]: 6

Ici, nous avons utilisé un for imbriqué boucle pour prendre l'entrée du tableau 2d. Une fois que toutes les entrées ont été prises, nous avons utilisé un autre for imbriqué boucle pour imprimer les membres du tableau.

Exemple 3 :Tableau tridimensionnel

// C++ Program to Store value entered by user in
// three dimensional array and display it.

#include <iostream>
using namespace std;

int main() {
    // This array can store upto 12 elements (2x3x2)
    int test[2][3][2] = {
                            {
                                {1, 2},
                                {3, 4},
                                {5, 6}
                            }, 
                            {
                                {7, 8}, 
                                {9, 10}, 
                                {11, 12}
                            }
                        };

    // Displaying the values with proper index.
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 2; ++k) {
                cout << "test[" << i << "][" << j << "][" << k << "] = " << test[i][j][k] << endl;
            }
        }
    }

    return 0;
}

Sortie

test[0][0][0] = 1
test[0][0][1] = 2
test[0][1][0] = 3
test[0][1][1] = 4
test[0][2][0] = 5
test[0][2][1] = 6
test[1][0][0] = 7
test[1][0][1] = 8
test[1][1][0] = 9
test[1][1][1] = 10
test[1][2][0] = 11
test[1][2][1] = 12

Le concept de base d'impression des éléments d'un tableau 3D est similaire à celui d'un tableau 2D.

Cependant, puisque nous manipulons 3 dimensions, nous utilisons une boucle for imbriquée avec 3 boucles au total au lieu de seulement 2 :

  • la boucle externe de i == 0 à i == 1 accède à la première dimension du tableau
  • la boucle du milieu à partir de j == 0 à j == 2 accède à la deuxième dimension du tableau
  • la boucle la plus interne de k == 0 à k == 1 accède à la troisième dimension du tableau

Comme nous pouvons le voir, la complexité du tableau augmente de façon exponentielle avec l'augmentation des dimensions.


Langue C

  1. Tableaux C#
  2. Tableau Jagged C #
  3. Opérateurs C++
  4. Commentaires C++
  5. Passage d'un tableau à une fonction en programmation C++
  6. Tableaux de copie Java
  7. Tableaux en C++ | Déclarer | Initialiser | Pointeur vers des exemples de tableaux
  8. Allocation dynamique C++ de tableaux avec exemple
  9. MATLAB - Tableaux