Commençons donc par les différences entre les tableaux à une dimension et à deux dimensions, ainsi qu'un tableau de comparaison.
Tableau de comparaison:
Base de comparaison | Unidimensionnel | Bidimensionnel |
---|---|---|
De base | Stocker une liste unique d'éléments de type de données similaire. | Stockez 'liste de listes' ou 'tableau de tableaux' ou 'tableau de tableaux à une dimension'. |
Déclaration | / * déclaration en C ++ type nom_variable [taille]; * / / * déclaration en Java type nom_variable []; nom_variable = nouveau type [taille]; * / | / * déclaration en C ++ type nom_variable [taille1] [taille2]; * / / * déclaration en Java type nom_variable = new int [taille1] [taille2]; * / |
Déclaration alternative | / * En Java int [] a = new int [10]; * / | / * En Java int [] [] a = new int [10] [20]; * / |
Taille totale en octets | Nombre total d'octets = sizeof (type de données de la variable tableau) * taille du tableau. | Nombre total d'octets = sizeof (type de données de la variable de tableau) * taille du premier index * taille du deuxième index. |
Paramètre de réception | Il peut être reçu dans un pointeur, un tableau dimensionné ou un tableau non dimensionné. | Le paramètre qui le reçoit doit définir la dimension la plus à droite d'un tableau. |
Dimensions | Une dimension. | Deux dimensions. |
Définition d'un tableau unidimensionnel (tableau 1-D)
Un tableau unidimensionnel ou unidimensionnel est considéré comme la "liste de variables de types de données similaires", et chaque variable est accessible de manière distincte en spécifiant son index entre crochets précédé du nom de ce tableau.
Discutons en contexte C ++
// déclaration en type C ++ nom_variable [taille];
Ici, type déclare le type de données de la variable de tableau et taille définit le nombre d'éléments contenus dans ce tableau.
Par exemple, si nous voulons déclarer un tableau qui contiendra le solde de chaque mois de l'année.
// exemple int month_balance [12];
Month _balance est la variable de tableau qui contiendra les 12 entiers, qui représentera le solde de chaque mois. Maintenant, si nous voulons accéder au solde du mois «avril», nous devons simplement mentionner le nom de la variable suivi d'un crochet indiquant la valeur d'index pour le mois d'avril, à savoir «mois_balance [3]». Mais comme 'avril' est le quatrième mois de l'année, nous avons mentionné '[3]' car tous les tableaux ont 0 comme index de leur premier élément.
En Java, cela peut être fait comme
// déclaration en type Java nom_variable []; nom_variable = nouveau type [taille];
Ici, nous avions initialement déclaré une variable de tableau avec son type, puis nous lui avions alloué de la mémoire en utilisant "new" et l'affectation de "new" à la variable de tableau déclarée. Prenons l'exemple ci-dessus si nous voulons déclarer un tableau qui contiendra le solde chaque mois de l'année.
// exemple int month_balance []; month_balance = new int [12];
Ici, 'new' alloue de la mémoire à la variable de tableau «month_balance», mont_balance va donc conserver la mémoire pour 12 valeurs entières.
Les tableaux peuvent être initialisés lorsqu'ils sont déclarés. Un initialiseur de tableau est la liste des valeurs séparées par des virgules entourées d'accolades.
//Exemple
int month_balance = {100, 500, 200, 750, 850, 250, 630, 248, 790, 360, 450, 180};
Définition d'un tableau à deux dimensions (tableau à deux dimensions)
C ++ et Java prennent en charge les tableaux multidimensionnels. L'une des formes les plus simples d'un tableau multidimensionnel est un tableau bidimensionnel ou bidimensionnel. Un tableau à deux dimensions peut être considéré comme un «tableau de tableaux» ou un «tableau de tableaux à une dimension». Pour déclarer la variable de tableau à deux dimensions, nous devons spécifier le nom du tableau suivi de deux crochets, le deuxième index étant le deuxième ensemble de crochets.
Un tableau à deux dimensions est stocké sous la forme de la matrice ligne-colonne, où le premier index indique la ligne et le second index indique la colonne. Le deuxième ou le plus à droite index d'un tableau change très rapidement par rapport à l'index premier ou le plus à gauche lors de l'accès aux éléments d'un tableau.
// déclaration en type C ++ nom_variable [taille1] [taille2];
Par exemple, nous souhaitons stocker le solde de tous les 30 jours de chaque mois de l’année dans un tableau à deux dimensions.
// exemple int month_balance [12] [30];
En Java, le tableau à deux dimensions est obtenu par
// déclaration en type Java nom_variable = new int [taille1] [taille2]; // exemple int month_balance = new int [12] [30];
Comme nous ne pouvons pas transmettre le tableau entier en tant que paramètre à une fonction, un pointeur sur le premier élément du tableau est passé. Un argument recevant le tableau à deux dimensions doit définir que c'est la dimension la plus à droite. La dimension la plus à droite est requise car le compilateur en a besoin pour confirmer la longueur de chaque ligne s'il souhaite indexer correctement le tableau. Si l'index le plus à droite n'est pas mentionné, le compilateur ne peut pas déterminer où la ligne suivante commence.
// exemple en Java void receiveing_funct (int a [] [10]) {. . . }
Lorsque la mémoire est allouée dynamiquement au tableau à deux dimensions en Java, l'index le plus à gauche est spécifié et les dimensions restantes peuvent être allouées séparément, c'est-à-dire que toutes les lignes du tableau peuvent ne pas avoir la même taille.
// exemple en Java int month_balance = new int [12] []; month_balance [0] = new int [31]; month_balance [1] = new int [28]; month_balance [2] = new int [31]; month_balance [3] = new int [30]; month_balance [4] = new int [31]; month_balance [5] = new int [30]; month_balance [6] = new int [31]; month_balance [7] = new int [30]; month_balance [8] = new int [31]; month_balance [9] = new int [30]; month_balance [10] = new int [31]; month_balance [11] = new int [30]; month_balance [12] = new int [31];
Mais il n'y a aucun avantage à le faire.
Différences clés entre les tableaux unidimensionnels et bidimensionnels
- Le tableau à une dimension est une liste dont les éléments sont de type de données similaire. D'autre part, le tableau à deux dimensions est une liste dont les éléments sont le tableau de type de données similaire.
- En C ++, lorsque le tableau à une dimension est reçu par le paramètre d'une fonction de réception, il n'est pas nécessaire de mentionner la taille du tableau car le compilateur comprend que le tableau du type (type de données mentionné avec paramètre) avec une certaine longueur doit être reçu. Dans un tableau à deux dimensions, le deuxième ou le plus à droite des index doit être spécifié, car le compilateur doit savoir où une seule ligne se termine et une nouvelle ligne commence.
- En C ++, le tableau unidimensionnel est stocké dans un emplacement mémoire contigu, dans l'ordre indexé, alors que le tableau bidimensionnel est également stocké dans l'emplacement mémoire contigu, mais comme il existe plusieurs lignes dans un tableau bidimensionnel, le stockage de une première ligne est suivie par une seconde et la troisième et ainsi de suite.
Remarque:
Le passage d'un tableau à une dimension ainsi que d'un tableau à deux dimensions à une fonction est similaire, c'est-à-dire que les deux ne sont passés que par le nom du tableau.
// exemple pass_funt (name_of_array);
Conclusion:
Dans les tableaux unidimensionnels et bidimensionnels, l’indice joue un rôle très important car c’est la seule chose qui identifie spécifiquement un élément du tableau. Les tableaux unidimensionnels et bidimensionnels peuvent être initialisés au moment de leur déclaration.