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 :
Comment : Créez des tableaux de tableaux managés (les tableaux en escalier)
Comment : Effectuez les définitions de types pour les tableaux managés
Comment : Tableaux managés d'utilisation en tant que paramètres de type de modèle
Comment : Tableaux de tri à l'aide de critères personnalisés
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++).
Configuration requise
Option du compilateur : /ZW
Exemples
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++).
Configuration requise
Option du compilateur : /clr
Exemples
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();
}