Recommandé, 2024

Choix De L'Éditeur

Différence entre les tableaux unidimensionnels (1D) et bidimensionnels (2D)

Un tableau est un ensemble de variables de types de données similaires et référencées par un nom commun. Un élément spécifique d'un tableau est accessible par un index particulier de ce tableau. Les tableaux en Java fonctionnent différemment du C ++. Le sujet principal de notre discussion est la différence entre les tableaux à une dimension et à deux dimensions. Un tableau à une dimension est une liste de variables avec le même type de données, alors que le tableau à deux dimensions est un «tableau de tableaux» ayant des types de données similaires. C ++ n’a pas de vérification liée sur les tableaux alors que Java a une vérification stricte sur les tableaux.

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 comparaisonUnidimensionnelBidimensionnel
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 octetsNombre 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éceptionIl 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.
DimensionsUne 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.

En C ++, la déclaration d'une variable de tableau de taille suffit à lui allouer de l'espace en mémoire. En Java, cela se fait en deux étapes. Tout d'abord, vous devez déclarer une variable du type souhaité. Deuxièmement, vous devez allouer la mémoire pour contenir le tableau en utilisant 'new' et l'assigner à la variable de tableau déclarée. Par conséquent, les tableaux sont alloués dynamiquement en Java.

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.

En C ++, le tableau à deux dimensions est déclaré comme;

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

  1. 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.
  2. 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.
  3. 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.

Top