Tableaux

Tableaux statiques

  • éléments de n'importe quel type
  • indices de types entier (tous y compris bool)
  • taille fixée à la compilation
  • les tableaux sont passés par adresse aux fonctions
  • sizeof d'un tableau retourne le nombre d'éléments multiplié par la taille d'un élément (l'occupation mémoire totale)
  • nombre d'éléments d'un tableau :
    • avant C++17 : sizeof(array) / sizeof(element
    • en C++17 : std:size(array) en ayant inclus <iterator> (retourne un unsigned int)
    • en C++20 : std:ssize(array) en ayant inclus <iterator> (retourne un signed int)

Exemple :

double mesuresTemperature[31];  // tableau de 31 doubles indicés de 0 à 30

mesuresTemperature[0] = 12.5;

int premiers[5]  { 2, 3, 5, 7  };  // initialisation, si la liste est plus courte que le tableau, les éléments restants sont initialisés à 0

int nombres[] { 0, 1, 2, 3 }; // avec une liste d'init, il n'est pas nécessaire de préciser la taille du tableau

int entiers[3][5]   // tableau multidimensions
{
  { 1, 2, 3, 4, 5 }, // ligne 0
  { 6, 7, 8, 9, 10 }, // ligne 1
  { 11, 12, 13, 14, 15 } // ligne 2
};

Tableaux dynamiques

  • alloués avec new [taille]
  • libérés avec delete []

Exemple :

int *array{ new int[5]{ 9, 7, 5, 3, 1 } };

delete [] array;