Share via


Tableaux (C++)

Un tableau est une collection d'objets similaires.Le cas le plus simple d'un tableau est un vecteur, qui peut être déclaré par la séquence suivante :

decl-specifier identifier [ constant-expression ]
decl-specifier identifier []
decl-specifier identifer [][ constant-expression] . . .
decl-specifier identifier [ constant-expression ]
[ constant-expression ] . . .

1.le spécificateur de déclaration :

  • un spécificateur facultatif de classe de stockage.

  • const facultatif et/ou spécificateurs d' volatile .

  • Le nom de type des éléments du tableau.

2.le déclarateur :

  • Identificateur.

  • Une expression constante de type intégral entre crochets, []. Si plusieurs dimensions sont déclarées à l'aide de les parenthèses supplémentaires, l'expression constante peut être omis sur le premier jeu de parenthèses.

  • Parenthèses supplémentaires facultatives plaçant des expressions constantes.

3.un initialiseur facultatif.Consultez l' initialiseurs.

Le nombre d'éléments dans le tableau est fourni par l'expression constante.Le premier élément du tableau est le 0th élément, et le dernier élément est l'élément (n-1), où n est le nombre d'éléments que le tableau peut contenir.L'expression constante doit être d'un type intégral et doit être supérieure à 0.Un tableau de taille zéro est reconnue uniquement lorsque le tableau est le dernier champ de struct ou union et lorsque les extensions Microsoft (/Ze) sont activées.

L'exemple suivant montre comment définir un tableau au moment de l'exécution :

// arrays.cpp
// compile with: /EHsc
#include <iostream>

int main() {
   using namespace std;
   int size = 3, i = 0;

   int* myarr = new int[size];

   for (i = 0 ; i < size ; i++)
      myarr[i] = 10;

   for (i = 0 ; i < size ; i++)
      printf_s("myarr[%d] = %d\n", i, myarr[i]);

   delete [] myarr;
}

Les tableaux sont des types dérivés qui peut être construites de tout autre type dérivé ou fondamental sauf les fonctions, des références, et void.

Les tableaux construites d'autres tableaux sont des tableaux multidimensionnels.Ces tableaux multidimensionnels sont spécifiés en plaçant des expressions constantes encadrées par plusieurs dans l'ordre.par exemple, considérez cette déclaration :

int i2[5][7];

Il spécifie un tableau de type int, conceptuellement organisé en un tableau à deux dimensions de cinq lignes et sept colonnes, comme indiqué dans l'illustration suivante :

Disposition conceptuelle de tableau multidimensionnel

Disposition conceptuelle d'un tableau multidimensionnel

Dans les déclarations des tableaux multidimensioned disposant d'une liste d'initialiseurs (comme décrit dans initialiseurs), l'expression constante qui spécifie les limites de la première dimension peut être omis.Par exemple :

// arrays2.cpp
// compile with: /c
const int cMarkets = 4;
// Declare a float that represents the transportation costs.
double TransportCosts[][cMarkets] = { 
   { 32.19, 47.29, 31.99, 19.11 },
   { 11.29, 22.49, 33.47, 17.29 },
   { 41.97, 22.09,  9.76, 22.55 }
};

La déclaration précédente définit un tableau qui est trois lignes par quatre colonnes.Les lignes représentent les fabriques et les colonnes représentent les marchés auxquels le bateau-usine.Les valeurs sont les coûts de transport les fabriques aux marchés.La première dimension du tableau est omis, mais le compilateur la complète en examinant l'initialiseur.

Rubriques de cette section :

Exemple

La technique d'omettre la spécification limites de la première dimension d'un tableau multidimensionnel peut également être utilisée dans les déclarations de fonction comme suit :

// multidimensional_arrays.cpp
// compile with: /EHsc
// arguments: 3
#include <limits>   // Includes DBL_MAX
#include <iostream>

const int cMkts = 4, cFacts = 2;

// Declare a float that represents the transportation costs
double TransportCosts[][cMkts] = { 
   { 32.19, 47.29, 31.99, 19.11 },
   { 11.29, 22.49, 33.47, 17.29 },
   { 41.97, 22.09,  9.76, 22.55 }  
};

// Calculate size of unspecified dimension
const int cFactories = sizeof TransportCosts /
                  sizeof( double[cMkts] );

double FindMinToMkt( int Mkt, double myTransportCosts[][cMkts], int mycFacts);

using namespace std;

int main( int argc, char *argv[] ) {
   double MinCost;

   if (argv[1] == 0) {
      cout << "You must specify the number of markets." << endl;
      exit(0);
   }
   MinCost = FindMinToMkt( *argv[1] - '0', TransportCosts, cFacts);
   cout << "The minimum cost to Market " << argv[1] << " is: "
       << MinCost << "\n";
}

double FindMinToMkt(int Mkt, double myTransportCosts[][cMkts], int mycFacts) {
   double MinCost = DBL_MAX;

   for( int i = 0; i < cFacts; ++i )
      MinCost = (MinCost < TransportCosts[i][Mkt]) ?
         MinCost : TransportCosts[i][Mkt];

   return MinCost;
}
  

Commentaires

La fonction FindMinToMkt est écrite de sorte qu'ajoutant de nouvelles fabriques ne requiert aucune modification du code, d'une recompilation.

Voir aussi

Référence

Déclarateurs de abrégé sur C++