Partager via


tableau (Visual C++)

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

Toutes les plateformes

La table doit être déclarée à l'aide du modificateur de handle-à-OBJECT (^) après le signe supérieur à (>) dans la déclaration.

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

Contrairement à C++ standard, l'indiçage n'est pas un synonyme pour des opérations arithmétiques sur des pointeurs et n'est pas commutatif.

Pour plus d'informations sur les tableaux, consultez:

Windows Runtime

Les tables sont des membres de l'espace de noms Platform. Les tables peuvent être unidimensionnels.

Syntaxe

Le premier exemple de syntaxe utilise le mot clé d'agrégation ref new pour allouer une table. 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 [,...]}
  • qualifiers [facultatif]
    Une ou plusieurs de ces spécificateurs de classe de stockage : mutable, volatiles, const, extern, statiques.

  • array-type
    Le type des variables du tableau. Les types valides sont les classes Windows Runtime les types fondamentaux, les classes et les structs de référence, les classes et les structs de valeurs, et des pointeurs natifs (type*).

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

  • identifier
    Nom de la variable de la table.

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

  • initialization-list [facultatif]
    Une liste séparée par des virgules de valeurs dans des accolades qui initialisent les éléments du tableau. Par exemple, si rank-size-list ont été (3), qui déclare un tableau 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 référence-compté avec __is_ref_array(type). Pour plus d'informations, consultez Prise en charge du compilateur des caractéristiques de type.

Conditions requises

Option du compilateur : /ZW

Exemples

L'exemple suivant crée un tableau contenant 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é gcnew pour allouer une table. 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 [,...]}
  • qualifiers [facultatif]
    Une ou plusieurs de ces spécificateurs de classe de stockage : mutable, volatiles, const, extern, statiques.

  • array-type
    Le type des variables du tableau. Les types valides sont les classes Windows Runtime et les types fondamentaux, les classes et les structs de référence, les classes et les structs de valeur, les pointeurs natifs (type*), la COSSE native (anciennes données ordinaires).

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

  • identifier
    Nom de la variable de la table.

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

  • rank-size-list
    Une liste séparée par des virgules de la taille de chaque dimension dans le tableau. Sinon, si le paramètre 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 [facultatif]
    Une liste séparée par des virgules de valeurs dans des accolades qui initialisent les éléments du tableau. Ou une liste séparée par des virgules d'éléments imbriqués initialization-list qui initialisent les éléments d'un tableau multidimensionnel.

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

Remarques

array est dans l'espace de noms l'espace de noms de CLI.

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

Les tableaux managés héritent de System::Array. N'importe quelle méthode ou propriété System::Array peut être appliqué directement à la variable de table.

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

Lorsque vous allouez un tableau dont le type d'élément est un type de 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 une table common langage runtime (CLR) avec __is_ref_array(type). Pour plus d'informations, consultez Prise en charge du compilateur des caractéristiques de type.

Conditions requises

Option du compilateur : /clr

Exemples

L'exemple suivant crée un tableau contenant 100 éléments, et un tableau en trois dimensions contenant 3 éléments dans la première dimension, 5 éléments de seconde, et 6 éléments dans le troisième.

// 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

Fonctionnalités de langage pour cibler le CLR