## Array class


Classe qui représente une structure de données tableau. Les objets de cette classe ne doivent être alloués qu'en utilisant les fonctions [System::MakeArray()](../makearray/) et [System::MakeObject()](../makeobject/). Ne créez jamais d'instance de ce type sur la pile ou avec l'opérateur new, car cela entraînera des erreurs d'exécution et/ou des échecs d'assertion. Enveloppez toujours cette classe dans un pointeur [System::SmartPtr](../smartptr/) et utilisez ce pointeur pour le passer aux fonctions en argument.

```cpp
template<typename T>class Array : public virtual System::Object,
                                  public System::Collections::Generic::IList<T>
```


| Paramètre | Description |
| --- | --- |
| T | Type des éléments d'un tableau |
## Nested classes

* Class [Enumerator](./enumerator/)
## Méthodes

| Méthode | Description |
| --- | --- |
| [Add](./add/)(const T\&) override | Non pris en charge car le tableau représenté par l'objet actuel est en lecture seule. |
| [Array](./array/)() | Construit un tableau vide. |
| [Array](./array/)(int, const T\&) | Constructeur de remplissage. |
| [Array](./array/)(typename std::enable_if\<std::is_arithmetic\<T\>::value\&&std::is_arithmetic\<ValueType\>::value\&&std::is_convertible\<ValueType, T\>::value, int\>::type, ValueType) | Constructeur de remplissage. |
| [Array](./array/)(int, const T) | Constructeur de remplissage. |
| [Array](./array/)(vector_t\&&) | Constructeur de déplacement. |
| [Array](./array/)(const vector_t\&) | Constructeur de copie. |
| [Array](./array/)(const std::vector\<Q\>\&) | Construit un objet [Array](./) et le remplit avec des valeurs copiées depuis un objet std::vector dont le type des valeurs est le même que **T** mais différent de **[UnderlyingType](./underlyingtype/)**. |
| [Array](./array/)(std::vector\<Q\>\&&) | Construit un objet [Array](./) et le remplit avec des valeurs déplacées depuis un objet std::vector dont le type des valeurs est le même que **T** mais différent de **[UnderlyingType](./underlyingtype/)**. |
| [Array](./array/)(std::initializer_list\<UnderlyingType\>) | Construit un objet [Array](./) et le remplit avec des valeurs provenant de la liste d'initialisation spécifiée contenant des éléments de type **[UnderlyingType](./underlyingtype/)**. |
| [Array](./array/)(const std::array\<UnderlyingType, InitArraySize\>\&) | Construit un objet [Array](./) et le remplit avec les valeurs du tableau spécifié contenant des éléments de type **[UnderlyingType](./underlyingtype/)**. |
| [Array](./array/)(std::initializer_list\<bool\>, int) | Construit un objet [Array](./) et le remplit avec les valeurs de la liste d'initialisation spécifiée contenant des éléments de type bool. |
| [begin](./begin/)() | Renvoie un itérateur vers le premier élément du conteneur. Si le conteneur est vide, l'itérateur renvoyé sera égal à [end()](./end/). |
| [begin](./begin/)() const | Renvoie un itérateur vers le premier élément du conteneur qualifié const. Si le conteneur est vide, l'itérateur renvoyé sera égal à [end()](./end/). |
| static [BinarySearch](./binarysearch/)(System::ArrayPtr\<T\>, const T\&) | Effectue une recherche binaire dans le tableau trié. |
| static [BinarySearch](./binarysearch/)(System::ArrayPtr\<T\>, const Y\&, const SharedPtr\<Collections::Generic::IComparer\<Z\>\>\&) | NON IMPLEMENTÉ. |
| [cbegin](./cbegin/)() const | Renvoie un itérateur vers le premier élément qualifié const du conteneur. Si le conteneur est vide, l'itérateur renvoyé sera égal à [cend()](./cend/). |
| [cend](./cend/)() const | Renvoie un itérateur vers l'élément suivant le dernier élément du conteneur. Cet élément sert de placeholder ; tenter d'y accéder entraîne un comportement indéfini. |
| [Clear](./clear/)() override | Non pris en charge car le tableau représenté par l'objet actuel est en lecture seule. |
| static [Clear](./clear/)(const ArrayPtr\<Type\>\&, int, int) | Remplace **count** valeurs à partir de l'index **startIndex** dans le tableau spécifié par des valeurs par défaut. |
| [Clone](./clone/)() | Clone le tableau. |
| static [ConstrainedCopy](./constrainedcopy/)(const ArrayPtr\<SrcType\>\&, int64_t, const ArrayPtr\<DstType\>\&, int64_t, int64_t) | Copie une plage d'éléments d'un [System.Array](./) à partir de la source spécifiée. |
| [Contains](./contains/)(const T\&) const override | Détermine si l'élément spécifié se trouve dans le tableau. |
| static [ConvertAll](./convertall/)(ArrayPtr\<InputType\>, Converter\<InputType, OutputType\>) | Construit un nouvel objet [Array](./) et le remplit avec les éléments du tableau spécifié convertis en type **OutputType** à l'aide du délégué de conversion spécifié. |
| static [ConvertAll](./convertall/)(ArrayPtr\<InputType\>, std::function\<OutputType(InputType)>) | Construit un nouvel objet [Array](./) et le remplit avec les éléments du tableau spécifié convertis en type **OutputType** à l'aide de l'objet fonction de conversion spécifié. |
| static [Copy](./copy/)(const ArrayPtr\<SrcType\>\&, const ArrayPtr\<DstType\>\&, int64_t) | Copie le nombre spécifié d'éléments du tableau source vers le tableau de destination. |
| static [Copy](./copy/)(System::Details::ArrayView\<SrcType\>, const ArrayPtr\<DstType\>\&, int64_t) | Copie le nombre spécifié d'éléments de la vue du tableau source vers le tableau de destination. |
| static [Copy](./copy/)(const ArrayPtr\<SrcType\>\&, System::Details::ArrayView\<DstType\>, int64_t) | Copie le nombre spécifié d'éléments du tableau source vers la vue du tableau de destination. |
| static [Copy](./copy/)(System::Details::ArrayView\<SrcType\>, System::Details::ArrayView\<DstType\>, int64_t) | Copie le nombre spécifié d'éléments de la vue du tableau source vers la vue du tableau de destination. |
| static [Copy](./copy/)(System::Details::StackArray\<SrcType, N\>\&, const ArrayPtr\<DstType\>\&, int64_t) | Copie le nombre spécifié d'éléments du tableau source sur la pile vers le tableau de destination. |
| static [Copy](./copy/)(const ArrayPtr\<SrcType\>\&, System::Details::StackArray\<DstType, N\>\&, int64_t) | Copie le nombre spécifié d'éléments du tableau source vers le tableau de destination sur la pile. |
| static [Copy](./copy/)(System::Details::StackArray\<SrcType, NS\>\&, System::Details::StackArray\<DstType, ND\>\&, int64_t) | Copie le nombre spécifié d'éléments du tableau source sur la pile vers le tableau de destination sur la pile. |
| static [Copy](./copy/)(const ArrayPtr\<SrcType\>\&, int64_t, const ArrayPtr\<DstType\>\&, int64_t, int64_t) | Copie un nombre spécifié d'éléments du tableau source à partir de l'index spécifié vers la position spécifiée dans le tableau de destination. |
| static [Copy](./copy/)(System::Details::ArrayView\<SrcType\>, int64_t, const ArrayPtr\<DstType\>\&, int64_t, int64_t) | Copie un nombre spécifié d'éléments de la vue du tableau source à partir de l'index spécifié vers la position spécifiée dans le tableau de destination. |
| static [Copy](./copy/)(const ArrayPtr\<SrcType\>\&, int64_t, System::Details::ArrayView\<DstType\>, int64_t, int64_t) | Copie un nombre spécifié d'éléments du tableau source à partir de l'index spécifié vers la position spécifiée dans la vue du tableau de destination. |
| static [Copy](./copy/)(System::Details::ArrayView\<SrcType\>, int64_t, System::Details::ArrayView\<DstType\>, int64_t, int64_t) | Copie un nombre spécifié d'éléments de la vue du tableau source à partir de l'index spécifié vers la position spécifiée dans la vue du tableau de destination. |
| static [Copy](./copy/)(System::Details::StackArray\<SrcType, N\>\&, int64_t, const ArrayPtr\<DstType\>\&, int64_t, int64_t) | Copie un nombre spécifié d'éléments du tableau source sur la pile à partir de l'index spécifié vers la position spécifiée dans le tableau de destination. |
| static [Copy](./copy/)(const ArrayPtr\<SrcType\>\&, int64_t, System::Details::StackArray\<DstType, N\>\&, int64_t, int64_t) | Copie un nombre spécifié d'éléments du tableau source à partir de l'index spécifié vers la position spécifiée dans le tableau de destination sur la pile. |
| static [Copy](./copy/)(System::Details::StackArray\<SrcType, NS\>\&, int64_t, System::Details::StackArray\<DstType, ND\>\&, int64_t, int64_t) | Copie un nombre spécifié d'éléments du tableau source sur la pile à partir de l'index spécifié vers la position spécifiée dans le tableau de destination sur la pile. |
| static [Copy](./copy/)(System::Details::ArrayView\<SrcType\>\&, int64_t, System::Details::StackArray\<DstType, ND\>\&, int64_t, int64_t) | Copie un nombre spécifié d'éléments de la vue du tableau source à partir de l'index spécifié vers la position spécifiée dans le tableau de destination sur la pile. |
| [CopyTo](./copyto/)(ArrayPtr\<T\>, int) override | Copie tous les éléments du tableau actuel vers le tableau de destination spécifié. Les éléments sont insérés dans le tableau de destination à partir de l'index indiqué par l'argument arrayIndex. |
| [CopyTo](./copyto/)(const ArrayPtr\<DstType\>\&, int64_t) const | Copie tous les éléments du tableau actuel vers le tableau de destination spécifié. Les éléments sont insérés dans le tableau de destination à partir de l'index indiqué par l'argument dstIndex. |
| [CopyTo](./copyto/)(const System::Details::ArrayView\<DstType\>\&, int64_t) const | Copie tous les éléments du tableau actuel vers la vue du tableau de destination spécifiée. Les éléments sont insérés dans la vue du tableau de destination à partir de l'index indiqué par l'argument dstIndex. |
| [CopyTo](./copyto/)(const ArrayPtr\<DstType\>\&, int64_t, int64_t, int64_t) const | Copie un nombre spécifié d'éléments du tableau actuel à partir de la position indiquée vers le tableau de destination spécifié. Les éléments sont insérés dans le tableau de destination à partir de l'index indiqué par l'argument dstIndex. |
| [CopyTo](./copyto/)(const System::Details::ArrayView\<DstType\>\&, int64_t, int64_t, int64_t) const | Copie un nombre spécifié d'éléments du tableau actuel à partir de la position indiquée vers la vue du tableau de destination spécifiée. Les éléments sont insérés dans la vue du tableau de destination à partir de l'index indiqué par l'argument dstIndex. |
| [Count](./count/)() const | Renvoie un nombre qui représente le nombre total de tous les éléments dans toutes les dimensions du tableau. |
| [crbegin](./crbegin/)() const | Renvoie un itérateur inverse vers le premier élément du conteneur inversé. Il correspond au dernier élément du conteneur non inversé. Si le conteneur est vide, l'itérateur renvoyé est égal à [crend()](./crend/). |
| [crend](./crend/)() const | Renvoie un itérateur inverse vers l'élément suivant le dernier élément du conteneur inversé. Il correspond à l'élément précédant le premier élément du conteneur non inversé. Cet élément sert de placeholder, tenter d'y accéder entraîne un comportement indéfini. |
| [data](./data/)() | Renvoie une référence à la structure de données interne utilisée pour stocker les éléments du tableau. |
| [data](./data/)() const | Renvoie une référence constante à la structure de données interne utilisée pour stocker les éléments du tableau. |
| [data_ptr](./data_ptr/)() | Renvoie un pointeur brut vers le début du tampon mémoire où les éléments du tableau sont stockés. |
| [data_ptr](./data_ptr/)() const | Renvoie un pointeur brut constant vers le début du tampon mémoire où les éléments du tableau sont stockés. |
| [end](./end/)() | Renvoie un itérateur vers l'élément suivant le dernier élément du conteneur. Cet élément sert de placeholder ; tenter d'y accéder entraîne un comportement indéfini. |
| [end](./end/)() const | Renvoie un itérateur vers l'élément suivant le dernier élément du conteneur qualifié const. Cet élément sert de placeholder ; tenter d'y accéder entraîne un comportement indéfini. |
| static [Exists](./exists/)(ArrayPtr\<T\>, std::function\<bool(T)>) | Détermine si l'objet [Array](./) spécifié contient un élément qui satisfait les exigences du prédicat spécifié. |
| static [Find](./find/)(System::ArrayPtr\<T\>, System::Predicate\<T\>) | Recherche le premier élément dans le tableau spécifié qui satisfait les conditions du prédicat spécifié. |
| static [FindAll](./findall/)(System::ArrayPtr\<T\>, System::Predicate\<T\>) | Récupère tous les éléments qui correspondent aux conditions définies par le prédicat spécifié. |
| static [FindIndex](./findindex/)(System::ArrayPtr\<T\>, System::Predicate\<T\>) | Recherche le premier élément dans le tableau spécifié qui satisfait les conditions du prédicat spécifié. |
| static [ForEach](./foreach/)(const ArrayPtr\<T\>\&, System::Action\<T\>) | Exécute l'action spécifiée sur chaque élément du tableau spécifié. |
| [get_Count](./get_count/)() const override | Renvoie la taille du tableau. |
| [get_IsReadOnly](./get_isreadonly/)() const override | Indique si le tableau est en lecture seule. |
| [get_Length](./get_length/)() const | Renvoie un entier 32 bits qui représente le nombre total de tous les éléments dans toutes les dimensions du tableau. |
| [get_LongLength](./get_longlength/)() const | Renvoie un entier 64 bits qui représente le nombre total de tous les éléments dans toutes les dimensions du tableau. |
| [get_Rank](./get_rank/)() const | NON IMPLEMENTÉ. |
| [GetEnumerator](./getenumerator/)() override | Renvoie un pointeur vers l'objet [Enumerator](./enumerator/) qui fournit l'interface IEnumerator aux éléments du tableau représenté par l'objet actuel. |
| [GetLength](./getlength/)(int) | Renvoie le nombre d'éléments dans la dimension spécifiée. |
| [GetLongLength](./getlonglength/)(int) | Renvoie le nombre d'éléments dans la dimension spécifiée sous forme d'entier 64 bits. |
| [GetLowerBound](./getlowerbound/)(int) const | Renvoie la borne inférieure de la dimension spécifiée. |
| [GetSizeTLength](./getsizetlength/)() const | Renvoie une variable std::size_t qui représente le nombre total de tous les éléments dans toutes les dimensions du tableau. |
| [GetUpperBound](./getupperbound/)(int) | Renvoie la borne supérieure de la dimension spécifiée. |
| [idx_get](./idx_get/)(int) const override | Renvoie l'élément à l'index spécifié. |
| [idx_set](./idx_set/)(int, T) override | Définit la valeur spécifiée comme l'élément du tableau à l'index spécifié. |
| [IndexOf](./indexof/)(const T\&) const override | Détermine l'index de la première occurrence de l'élément spécifié dans le tableau. |
| static [IndexOf](./indexof/)(const ArrayPtr\<ArrayType\>\&, const ValueType\&) | Détermine l'index de la première occurrence de l'élément spécifié dans le tableau. |
| static [IndexOf](./indexof/)(const ArrayPtr\<ArrayType\>\&, const ValueType\&, int) | Détermine l'index de la première occurrence de l'élément spécifié dans le tableau en commençant à l'index spécifié. |
| static [IndexOf](./indexof/)(const ArrayPtr\<ArrayType\>\&, const ValueType\&, int, int) | Détermine l'index de la première occurrence de l'élément spécifié dans une plage d'éléments du tableau définie par l'index de départ et le nombre d'éléments dans la plage. |
| [Init](./init/)(const T) | Remplit le tableau représenté par l'objet actuel avec les valeurs du tableau spécifié. |
| [Initialize](./initialize/)() | Remplit le tableau avec les objets construits par défaut du type **T**. |
| [Insert](./insert/)(int, const T\&) override | Non pris en charge car le tableau représenté par l'objet actuel est en lecture seule. |
| static [LastIndexOf](./lastindexof/)(const ArrayPtr\<ArrayType\>\&, const ValueType\&, int, int) | Détermine l'index de la dernière occurrence de l'élément spécifié dans une plage d'éléments du tableau définie par l'index de départ et le nombre d'éléments dans la plage. |
| static [LastIndexOf](./lastindexof/)(const ArrayPtr\<ArrayType\>\&, const ValueType\&, int) | Détermine l'index de la dernière occurrence de l'élément spécifié dans le tableau en commençant à l'index spécifié. |
| static [LastIndexOf](./lastindexof/)(const ArrayPtr\<ArrayType\>\&, const ValueType\&) | Détermine l'index de la dernière occurrence de l'élément spécifié dans le tableau. |
| [Max](./max/)() const | Trouve le plus grand élément du tableau en utilisant [operator<()](../operator_/) pour comparer les éléments. |
| [Min](./min/)() const | Trouve le plus petit élément du tableau en utilisant [operator<()](../operator_/) pour comparer les éléments. |
| [operator[]](./operator[]/)(int) | Renvoie un élément à l'index spécifié. |
| [operator[]](./operator[]/)(int) const | Renvoie un élément à l'index spécifié. |
| [rbegin](./rbegin/)() | Renvoie un itérateur inverse vers le premier élément du conteneur inversé. Il correspond au dernier élément du conteneur non inversé. Si le conteneur est vide, l'itérateur renvoyé est égal à [rend()](./rend/). |
| [rbegin](./rbegin/)() const | Renvoie un itérateur inverse vers le premier élément du conteneur inversé. Il correspond au dernier élément du conteneur non inversé. Si le conteneur est vide, l'itérateur renvoyé est égal à [rend()](./rend/). |
| [Remove](./remove/)(const T\&) override | Non pris en charge car le tableau représenté par l'objet actuel est en lecture seule. |
| [RemoveAt](./removeat/)(int) override | Non pris en charge car le tableau représenté par l'objet actuel est en lecture seule. |
| [rend](./rend/)() | Renvoie un itérateur inverse vers l'élément suivant le dernier élément du conteneur inversé. Il correspond à l'élément précédant le premier élément du conteneur non inversé. Cet élément sert de placeholder, tenter d'y accéder entraîne un comportement indéfini. |
| [rend](./rend/)() const | Renvoie un itérateur inverse vers l'élément suivant le dernier élément du conteneur inversé. Il correspond à l'élément précédant le premier élément du conteneur non inversé. Cet élément sert de placeholder, tenter d'y accéder entraîne un comportement indéfini. |
| static [Resize](./resize/)(ArrayPtr\<Type\>\&, int) | Modifie la taille du tableau spécifié à la valeur spécifiée ou crée un nouveau tableau avec la taille spécifiée. |
| static [Reverse](./reverse/)(const ArrayPtr\<Type\>\&) | Inverse les éléments du tableau spécifié. |
| static [Reverse](./reverse/)(const ArrayPtr\<Type\>\&, int, int) | Inverse une plage d'éléments du tableau spécifié. |
| [SetTemplateWeakPtr](./settemplateweakptr/)(uint32_t) override | Fait en sorte que le tableau traite les pointeurs stockés comme faibles (le cas échéant). |
| [SetValue](./setvalue/)(const T\&, int) | Définit la valeur de l'élément à l'index spécifié. |
| static [Sort](./sort/)(const ArrayPtr\<Type\>\&) | Trie les éléments du tableau spécifié en utilisant le comparateur par défaut. |
| static [Sort](./sort/)(const ArrayPtr\<Type\>\&, int, int) | Trie une plage d'éléments du tableau spécifié en utilisant le comparateur par défaut. |
| static [Sort](./sort/)(const ArrayPtr\<Type\>\&, const SharedPtr\<System::Collections::Generic::IComparer\<T\>\>\&) | Trie les éléments du tableau spécifié en utilisant le comparateur spécifié. |
| static [Sort](./sort/)(const ArrayPtr\<Type\>\&, const SharedPtr\<System::Collections::Generic::IComparer\<Y\>\>\&) | NON IMPLEMENTÉ. |
| static [Sort](./sort/)(const ArrayPtr\<TKey\>\&, const ArrayPtr\<TValue\>\&) | Trie deux tableaux, l'un contenant les clés et l'autre les éléments correspondants, en fonction des valeurs du tableau contenant les clés, dont les éléments sont comparés en utilisant operator<. |
| static [Sort](./sort/)(const ArrayPtr\<TKey\>\&, const ArrayPtr\<TValue\>\&, int, int) | Trie deux tableaux, l'un contenant les clés et l'autre les éléments correspondants, en fonction des valeurs du tableau contenant les clés, dont les éléments sont comparés en utilisant le comparateur par défaut. |
| static [TrueForAll](./trueforall/)(System::ArrayPtr\<T\>, System::Predicate\<T\>) | Détermine si tous les éléments du tableau spécifié satisfont les conditions définies par le prédicat spécifié. |
| [virtualizeBeginConstIterator](./virtualizebeginconstiterator/)() const override | Obtient l'implémentation de l'itérateur const begin pour le conteneur actuel. |
| [virtualizeBeginIterator](./virtualizebeginiterator/)() override | Obtient l'implémentation de l'itérateur begin pour le conteneur actuel. |
| [virtualizeEndConstIterator](./virtualizeendconstiterator/)() const override | Obtient l'implémentation de l'itérateur const end pour le conteneur actuel. |
| [virtualizeEndIterator](./virtualizeenditerator/)() override | Obtient l'implémentation de l'itérateur end pour le conteneur actuel. |
## Typedefs

| Typedef | Description |
| --- | --- |
| [const_iterator](./const_iterator/) | Type d'itérateur constant. |
| [const_reverse_iterator](./const_reverse_iterator/) | Type d'itérateur inverse constant. |
| [EnumerablePtr](./enumerableptr/) | Un alias pour le type pointeur partagé pointant vers un objet IEnumerable contenant des éléments du type **T**. |
| [EnumeratorPtr](./enumeratorptr/) | Un alias pour le type de pointeur partagé pointant vers un objet IEnumerator contenant des éléments de type **T**. |
| [iterator](./iterator/) | Type d'itérateur. |
| [reverse_iterator](./reverse_iterator/) | Type d'itérateur inverse. |
| [UnderlyingType](./underlyingtype/) | Alias pour le type utilisé pour représenter chaque élément du tableau. |
| [ValueType](./valuetype/) | Alias pour le type des éléments du tableau. |
## Remarques



```cpp
#include <system/array.h>
#include <system/smart_ptr.h>

using namespace System;

void Print(const SmartPtr<Array<int32_t>> &arrayPtr)
{
  for (auto item: arrayPtr)
  {
    std::cout << item << ' ';
  }
  std::cout << std::endl;
}

int main()
{
  // Créez et remplissez le tableau.
  auto arrayPtr = MakeObject<Array<int32_t>>(5, 0);
  for (auto i = 0; i < arrayPtr->get_Length(); ++i)
  {
    arrayPtr[i] = 5 - i;
  }

  // Affichez les éléments du tableau.
  Print(arrayPtr);

  // Trier les éléments du tableau par ordre croissant.
  Array<int32_t>::Sort(arrayPtr);

  // Affichez les éléments du tableau.
  Print(arrayPtr);

  // Afficher le nombre d'éléments du tableau.
  std::cout << arrayPtr->get_Length() << std::endl;

  // Afficher l'index de l'élément qui vaut 4.
  std::cout << arrayPtr->IndexOf(4) << std::endl;

  // Redimensionner le tableau.
  Array<int32_t>::Resize(arrayPtr, 3);

  // Affichez les éléments du tableau.
  Print(arrayPtr);

  return 0;
}
/*
This code example produces the following output:
5 4 3 2 1
1 2 3 4 5
5
3
1 2 3
*/
```

## Voir aussi

* Class [Object](../object/)
* Class [IList](../../system.collections.generic/ilist/)
* Namespace [System](../)
* Library [Aspose.Page for C++](../../)
