Partager via


Tableaux (extensions du composant C++)

Platform::Array<T> dans C++/CX, le mot clé ou d' array dans C++/CLI, déclare un tableau d'un type et une valeur initiale spécifiés.

Toutes les plateformes

Tableau doit être déclarée avec le modificateur de handle-à- objet (^) après le signe " supérieur à " (>) dans la déclaration.

Le nombre d'éléments du tableau n'est pas partie du type.Une variable tableau peut faire référence à des tableaux de différentes tailles.

Contrairement au C++ standard, en indice l'n'est pas un synonyme pour les opérations arithmétiques sur les pointeurs et n'est pas commutatif.

Pour plus d'informations sur les tableaux, consultez :

Windows Runtime

Les tableaux sont des membres de l'espace de noms d' Platform .Les tableaux peuvent être uniquement unidimensionnelles.

Syntaxe

Le premier exemple de syntaxe utilise le mot clé d'agrégat d' ref new pour allouer un tableau.Le deuxième exemple déclare un tableau local.

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier = ref new [Platform::]Array< initialization-type > [{initialization-list [,...]}]

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier = {initialization-list [,...]}
  • qualificateurs [facultative]
    Un ou plusieurs de ces spécificateurs de classe de stockage : mutable, volatile, const, extern, statique.

  • array-type
    Le type de la variable tableau.Les types valides sont des classes d' Windows Runtime et des types fondamentaux, les classes et les structures de référence, les classes et les structures de valeur, et les pointeurs natifs (type*).

  • rank [facultative]
    Nombre de dimensions du tableau.Doit être 1.

  • identifier
    Le nom de la variable tableau.

  • initialization-type
    Le type des valeurs qui initialisent tableau.En général, array-type et initialization-type sont du même type.Toutefois, les types peuvent être différents si une conversion d' initialization-type à array-type— pour l'exemple, si initialization-type est dérivé d' array-type.

  • initialization-list [facultative]
    Une liste délimitée par des virgules de valeurs dans des accolades qui initialisent les éléments du tableau.Par exemple, si rank-size-list étaient (3), qui déclare un tableau unidimensionnel de 3 éléments, initialization list peut être {1,2,3}.

Remarques

Vous pouvez détecter au moment de la compilation si un type est un tableau des références numérotée avec __is_ref_array(type).Pour plus d’informations, consultez Prise en charge du compilateur pour les Type Traits (extensions du composant C++).

ts4c4dw6.collapse_all(fr-fr,VS.110).gifConfiguration requise

Option du compilateur : /ZW

ts4c4dw6.collapse_all(fr-fr,VS.110).gifExemples

L'exemple suivant crée un tableau unidimensionnel avec 100 éléments.

// cwr_array.cpp
// compile with: /ZW
using namespace Platform;
ref class MyClass {};
int main() {
   // one-dimensional array
   Array<MyClass^>^ My1DArray = ref new Array<MyClass^>(100);
   My1DArray[99] = ref new MyClass();
}

Common Language Runtime

Syntaxe

Le premier exemple de syntaxe utilise le mot clé d' gcnew pour allouer un tableau.Le deuxième exemple déclare un tableau local.

[qualifiers] [cli::]array<[qualifiers] array-type [,rank] >^ identifier = gcnew [cli::]array< initialization-type [,rank] >(rank-size-list[,...]) [{initialization-list [,...]}]

[qualifiers] [cli::]array<[qualifiers] array-type [,rank] >^ identifier = {initialization-list [,...]}
  • qualificateurs [facultative]
    Un ou plusieurs de ces spécificateurs de classe de stockage : mutable, volatile, const, extern, statique.

  • array-type
    Le type de la variable tableau.Les types valides sont des classes d' Windows Runtime et des types fondamentaux, les classes et les structures de référence, les classes et les structures de valeur, les pointeurs natifs (type*), les types natifs POD (plain old data).

  • rank [facultative]
    Nombre de dimensions du tableau.La valeur par défaut est 1 ; le nombre maximal est 32.Chaque dimension du tableau est lui-même un tableau.

  • identifier
    Le nom de la variable tableau.

  • initialization-type
    Le type des valeurs qui initialisent tableau.En général, array-type et initialization-type sont du même type.Toutefois, les types peuvent être différents si une conversion d' initialization-type à array-type— pour l'exemple, si initialization-type est dérivé d' array-type.

  • rank-size-list
    Une liste délimitée par des virgules de la taille de chaque dimension du tableau.Sinon, si le paramètre d' initialization-list est spécifié, le compilateur peut déduire la taille de chaque dimension et rank-size-list peut être omis.Pour plus d’informations, consultez Comment : Créez les tableaux de Multidimension.

  • initialization-list [facultative]
    Une liste délimitée par des virgules de valeurs dans des accolades qui initialisent les éléments du tableau.Ou une liste délimitée par des virgules des éléments imbriqués d' initialisation-liste qui initialisent les éléments d'un tableau multidimensionnel.

    Par exemple, si rank-size-list étaient (3), qui déclare un tableau unidimensionnel de 3 éléments, initialization list peut être {1,2,3}.Si rank-size-list étaient (3,2,4), qui déclare un tableau à trois dimensions de 3 éléments dans la première dimension, 2 éléments dans la deuxième, et 4 éléments du tiers, initialization-list peuvent être {{1,2,3},{0,0},{-5,10,-21,99}}.)

Remarques

array est dans l'espace de noms de Plateforme, valeurs par défaut et espaces de noms CLI (extensions du composant C++) .

Comme C++ standard, les index d'un tableau sont de base zéro, et un tableau est indicée à l'aide de les crochets ([]).Contrairement au C++ standard, les index d'un tableau multidimensionnel sont spécifiés dans une liste d'index pour chaque dimension au lieu d'un ensemble d'opérateurs de crochets ([]) pour chaque dimension.Par exemple, identificateur[index1, index2] au lieu d' identificateur[index1] [ index2].

Toutes les tableaux managés héritent d' System::Array.Toute méthode ou propriété d' System::Array peut être appliquée directement à la variable tableau.

Lorsque vous allouez un tableau dont le type d'élément est pointeur- à une classe managée, les éléments sont 0 initialisé.

Lorsque vous allouez un tableau dont le type d'élément est un type valeur V, le constructeur par défaut pour V est appliqué à chaque élément du tableau.Pour plus d’informations, consultez Équivalents .NET Framework des types natifs C++ (C++/CLI).

Au moment de la compilation, vous pouvez détecter si un type est un tableau du common langage runtime (CLR) avec __is_ref_array(type).Pour plus d’informations, consultez Prise en charge du compilateur pour les Type Traits (extensions du composant C++).

ts4c4dw6.collapse_all(fr-fr,VS.110).gifConfiguration requise

Option du compilateur : /clr

ts4c4dw6.collapse_all(fr-fr,VS.110).gifExemples

L'exemple suivant crée un tableau unidimensionnel avec 100 éléments, et un tableau à trois dimensions qui contient 3 éléments dans la première dimension, 5 éléments dans la deuxième, et 6 éléments du tiers.

// clr_array.cpp
// compile with: /clr
ref class MyClass {};
int main() {
   // one-dimensional array
   array<MyClass ^> ^ My1DArray = gcnew array<MyClass ^>(100);
   My1DArray[99] = gcnew MyClass();

   // three-dimensional array
   array<MyClass ^, 3> ^ My3DArray = gcnew array<MyClass ^, 3>(3, 5, 6);
   My3DArray[0,0,0] = gcnew MyClass();
}

Voir aussi

Concepts

Extensions de composant pour les plateformes Runtime