Tableaux multidimensionnels C ++ (tableaux 2e et 3D)

Dans ce didacticiel, 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.

Éléments dans un tableau à deux dimensions dans la programmation C ++

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 dans le tableau simplement en multipliant ses dimensions:

 2 x 4 x 3 = 24

Initialisation multidimensionnelle des baies

Comme un tableau normal, nous pouvons initialiser un tableau multidimensionnel de plusieurs manières.

1. Initialisation d'un tableau bidimensionnel

 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.

Initialisation d'un tableau à deux dimensions en C ++

2. Initialisation du 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 en 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) ) );

Notez les dimensions de ce tableau en trois dimensions.

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

 Élément 1 = ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)) Élément 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) et (23, 12, 23, 2) pour l'élément 1. (13, 4, 56, 3), (5, 9, 3 , 5) et (5, 1, 4, 9) pour l'élément 2.

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

 (3, 4, 2, 3) (0, -3, 9, 11)…… 

Exemple 1: matrice bidimensionnelle

 // C++ Program to display all elements // of an initialised two dimensional array #include 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; )

Production

 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 inttableau à deux dimensions nommé test qui a 3 "lignes" et 2 "colonnes".

Ici, nous avons utilisé la forboucle imbriquée pour afficher les éléments du tableau.

  • la boucle externe de i == 0pour i == 2accéder aux lignes du tableau
  • la boucle interne from j == 0pour j == 1accé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 bidimensionnel

 #include 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 > 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; )

Production

 Entrez 6 chiffres: 1 2 3 4 5 6 Les chiffres sont: chiffres (0) (0): 1 chiffres (0) (1): 2 chiffres (0) (2): 3 chiffres (1) (0): 4 chiffres (1) (1): 5 chiffres (1) (2): 6

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

Exemple 3: matrice tridimensionnelle

 // C++ Program to Store value entered by user in // three dimensional array and display it. #include 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; )

Production

 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 de l'impression des éléments d'un tableau 3D est similaire à celui d'un tableau 2D.

Cependant, comme 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 == 1accède à la première dimension du tableau
  • la boucle du milieu de j == 0à j == 2accède à la deuxième dimension du tableau
  • la boucle la plus interne de k == 0à k == 1accè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.

Articles intéressants...