Tableaux C++
Tableaux C++
Dans ce tutoriel, nous allons apprendre à travailler avec des tableaux. Nous apprendrons à déclarer, initialiser et accéder aux éléments de tableau en programmation C++ à l'aide d'exemples.
En C++, un tableau est une variable qui peut stocker plusieurs valeurs du même type. Par exemple,
Supposons qu'une classe compte 27 élèves et que nous devions stocker les notes de chacun d'eux. Au lieu de créer 27 variables distinctes, nous pouvons simplement créer un tableau :
double grade[27];
Ici, note est un tableau pouvant contenir un maximum de 27 éléments de double
saisir.
En C++, la taille et le type des tableaux ne peuvent pas être modifiés après sa déclaration.
Déclaration de tableau C++
dataType arrayName[arraySize];
Par exemple,
int x[6];
Ici,
int
- type d'élément à stocker- x - nom du tableau
6
- taille du tableau
Accéder aux éléments dans le tableau C++
En C++, chaque élément d'un tableau est associé à un nombre. Le nombre est connu sous le nom d'indice de tableau. Nous pouvons accéder aux éléments d'un tableau en utilisant ces indices.
// syntax to access array elements
array[index];
Considérez le tableau x nous avons vu ci-dessus.
Quelques choses à retenir :
- Les indices du tableau commencent par
0
. Signification x[0] est le premier élément stocké à l'index0
. - Si la taille d'un tableau est
n
, le dernier élément est stocké à l'index(n-1)
. Dans cet exemple, x[5] est le dernier élément. - Les éléments d'un tableau ont des adresses consécutives. Par exemple, supposons que l'adresse de départ de
x[0]
est 2120d. Ensuite, l'adresse de l'élément suivantx[1]
sera 2124d, l'adresse dex[2]
sera 2128d et ainsi de suite.
Ici, la taille de chaque élément est augmentée de 4. C'est parce que la taille deint
est de 4 octets.
Initialisation de tableau C++
En C++, il est possible d'initialiser un tableau lors de la déclaration. Par exemple,
// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};
Une autre méthode pour initialiser le tableau lors de la déclaration :
// declare and initialize an array
int x[] = {19, 10, 8, 17, 9, 15};
Ici, nous n'avons pas mentionné la taille du tableau. Dans de tels cas, le compilateur calcule automatiquement la taille.
Tableau C++ avec membres vides
En C++, si un tableau a une taille n
, nous pouvons stocker jusqu'à n nombre d'éléments dans le tableau. Cependant, que se passera-t-il si nous stockons moins de n nombre d'éléments.
Par exemple,
// store only 3 elements in the array
int x[6] = {19, 10, 8};
Ici, le tableau x a une taille de 6
. Cependant, nous l'avons initialisé avec seulement 3 éléments.
Dans de tels cas, le compilateur attribue des valeurs aléatoires aux places restantes. Souvent, cette valeur aléatoire est simplement 0
.
Comment insérer et imprimer des éléments de tableau ?
int mark[5] = {19, 10, 8, 17, 9}
// change 4th element to 9
mark[3] = 9;
// take input from the user
// store the value at third position
cin >> mark[2];
// take input from the user
// insert at ith position
cin >> mark[i-1];
// print first element of the array
cout << mark[0];
// print ith element of the array
cout >> mark[i-1];
Exemple 1 :Affichage des éléments d'un tableau
#include <iostream>
using namespace std;
int main() {
int numbers[5] = {7, 5, 6, 12, 35};
cout << "The numbers are: ";
// Printing array elements
// using range based for loop
for (const int &n : numbers) {
cout << n << " ";
}
cout << "\nThe numbers are: ";
// Printing array elements
// using traditional for loop
for (int i = 0; i < 5; ++i) {
cout << numbers[i] << " ";
}
return 0;
}
Sortie
The numbers are: 7 5 6 12 35 The numbers are: 7 5 6 12 35
Ici, nous avons utilisé un for
boucle pour itérer à partir de i = 0
à i = 4
. Dans chaque itération, nous avons imprimé numbers[i]
.
Nous avons de nouveau utilisé une boucle for basée sur une plage pour imprimer les éléments du tableau. Pour en savoir plus sur cette boucle, consultez C++ Ranged for Loop.
Remarque : Dans notre boucle basée sur la plage, nous avons utilisé le code const int &n
au lieu de int n
comme déclaration de plage. Cependant, le const int &n
est préférable car :
- Utiliser
int n
copie simplement les éléments du tableau dans la variable n lors de chaque itération. Ce n'est pas efficace en mémoire.
&n , cependant, utilise l'adresse mémoire des éléments du tableau pour accéder à leurs données sans les copier dans une nouvelle variable. Ceci est économe en mémoire. - Nous imprimons simplement les éléments du tableau, sans les modifier. Par conséquent, nous utilisons
const
afin de ne pas modifier accidentellement les valeurs du tableau.
Exemple 2 :Prendre les entrées de l'utilisateur et les stocker dans un tableau
#include <iostream>
using namespace std;
int main() {
int numbers[5];
cout << "Enter 5 numbers: " << endl;
// store input from user to array
for (int i = 0; i < 5; ++i) {
cin >> numbers[i];
}
cout << "The numbers are: ";
// print array elements
for (int n = 0; n < 5; ++n) {
cout << numbers[n] << " ";
}
return 0;
}
Sortie
Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15
Encore une fois, nous avons utilisé un for
boucle pour itérer à partir de i = 0
à i = 4
. À chaque itération, nous avons pris une entrée de l'utilisateur et l'avons stockée dans numbers[i]
.
Ensuite, nous avons utilisé un autre for
boucle pour imprimer tous les éléments du tableau.
Exemple 3 :Afficher la somme et la moyenne des éléments du tableau à l'aide de la boucle for
#include <iostream>
using namespace std;
int main() {
// initialize an array without specifying size
double numbers[] = {7, 5, 6, 12, 35, 27};
double sum = 0;
double count = 0;
double average;
cout << "The numbers are: ";
// print array elements
// use of range-based for loop
for (const double &n : numbers) {
cout << n << " ";
// calculate the sum
sum += n;
// count the no. of array elements
++count;
}
// print the sum
cout << "\nTheir Sum = " << sum << endl;
// find the average
average = sum / count;
cout << "Their Average = " << average << endl;
return 0;
}
Sortie
The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333
Dans ce programme :
- Nous avons initialisé un double tableau nommé nombres mais sans préciser sa taille. Nous avons également déclaré trois variables doubles sum , compter , et moyenne .
Ici,sum =0
etcount = 0
. - Ensuite, nous avons utilisé une plage basée sur
for
boucle pour imprimer les éléments du tableau. À chaque itération de la boucle, nous ajoutons l'élément de tableau actuel à sum . - Nous augmentons également la valeur de count par
1
à chaque itération, afin que nous puissions obtenir la taille du tableau à la fin de la boucle for. - Après avoir imprimé tous les éléments, nous imprimons la somme et la moyenne de tous les nombres. La moyenne des nombres est donnée par
average = sum / count;
Remarque : Nous avons utilisé une plage for
boucle au lieu d'un for
normal boucle.
Un for
normal boucle nous oblige à spécifier le nombre d'itérations, qui est donné par la taille du tableau.
Mais une plage for
boucle ne nécessite pas de telles spécifications.
Tableau C++ hors limites
Si nous déclarons un tableau de taille 10, alors le tableau contiendra des éléments d'index 0 à 9.
Cependant, si nous essayons d'accéder à l'élément à l'index 10 ou supérieur à 10, cela entraînera un comportement indéfini.
Langue C