Classe System::Array

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() et System::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 le pointeur System::SmartPtr et utilisez ce pointeur pour le passer aux fonctions en argument.

template<typename T>class Array : public virtual System::Object,
                                  public System::Collections::Generic::IList<T>
ParamètreDescription
TType des éléments d’un tableau

Nested classes

Méthodes

MéthodeDescription
Add(const T&) overrideNon pris en charge car le tableau représenté par l’objet actuel est en lecture seule.
Array()Construit un tableau vide.
Array(int, const T&)Constructeur de remplissage.
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(int, const T)Constructeur de remplissage.
Array(vector_t&&)Constructeur de déplacement.
Array(const vector_t&)Constructeur de copie.
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.
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.
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.
Array(const std::array<UnderlyingType, InitArraySize>&)Construit un objet Array et le remplit avec des valeurs provenant du tableau spécifié contenant des éléments de type UnderlyingType.
Array(std::initializer_list<bool>, int)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 bool.
begin()Renvoie un itérateur vers le premier élément du conteneur. Si le conteneur est vide, l’itérateur renvoyé sera égal à end().
begin() constRenvoie un itérateur vers le premier élément du conteneur const-qualifié. Si le conteneur est vide, l’itérateur renvoyé sera égal à end().
static BinarySearch(System::ArrayPtr<T>, const T&)Effectue une recherche binaire dans le tableau trié.
static BinarySearch(System::ArrayPtr<T>, const Y&, const SharedPtr<Collections::Generic::IComparer<Z>>&)NON IMPLEMENTÉ.
cbegin() constRenvoie un itérateur vers le premier élément const-qualifié du conteneur. Si le conteneur est vide, l’itérateur renvoyé sera égal à cend().
cend() constRenvoie un itérateur vers l’élément suivant le dernier élément du conteneur. Cet élément sert de repère ; tenter d’y accéder entraîne un comportement indéfini.
Clear() overrideNon pris en charge car le tableau représenté par l’objet actuel est en lecture seule.
static 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 le tableau.
static ConstrainedCopy(const ArrayPtr<SrcType>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copie une plage d’éléments depuis un System.Array à partir de la source spécifiée.
Contains(const T&) const overrideDétermine si l’élément spécifié se trouve dans le tableau.
static 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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(ArrayPtr<T>, int) overrideCopie 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 spécifié par l’argument arrayIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t) constCopie 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 spécifié par l’argument dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t) constCopie tous les éléments de la vue 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 spécifié par l’argument dstIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t, int64_t, int64_t) constCopie un nombre spécifié d’éléments du tableau actuel à partir de la position spécifiée vers le tableau de destination spécifié. Les éléments sont insérés dans le tableau de destination à partir de l’index spécifié par l’argument dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t, int64_t, int64_t) constCopie un nombre spécifié d’éléments du tableau actuel à partir de la position spécifié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 spécifié par l’argument dstIndex.
Count() constRenvoie un nombre qui représente le nombre total de tous les éléments dans toutes les dimensions du tableau.
crbegin() constRenvoie 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() constRenvoie 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 repère, tenter d’y accéder entraîne un comportement indéfini.
data()Renvoie une référence à la structure de données interne utilisée pour stocker les éléments du tableau.
data() constRenvoie une référence constante à la structure de données interne utilisée pour stocker les éléments du tableau.
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() constRenvoie un pointeur brut constant vers le début du tampon mémoire où les éléments du tableau sont stockés.
end()Renvoie un itérateur vers l’élément suivant le dernier élément du conteneur. Cet élément sert de repère ; tenter d’y accéder entraîne un comportement indéfini.
end() constRenvoie un itérateur vers l’élément suivant le dernier élément du conteneur const-qualifié. Cet élément sert de repère ; tenter d’y accéder entraîne un comportement indéfini.
static 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(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(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(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(const ArrayPtr<T>&, System::Action<T>)Exécute l’action spécifiée sur chaque élément du tableau spécifié.
get_Count() const overrideRenvoie la taille du tableau.
get_IsReadOnly() const overrideIndique si le tableau est en lecture seule.
get_Length() constRenvoie un entier 32 bits qui représente le nombre total de tous les éléments dans toutes les dimensions du tableau.
get_LongLength() constRenvoie un entier 64 bits qui représente le nombre total de tous les éléments dans toutes les dimensions du tableau.
get_Rank() constNON IMPLEMENTÉ.
GetEnumerator() overrideRenvoie un pointeur vers l’objet Enumerator qui fournit l’interface IEnumerator aux éléments du tableau représenté par l’objet actuel.
GetLength(int)Renvoie le nombre d’éléments dans la dimension spécifiée.
GetLongLength(int)Renvoie le nombre d’éléments dans la dimension spécifiée sous forme d’entier 64 bits.
GetLowerBound(int) constRenvoie la borne inférieure de la dimension spécifiée.
GetSizeTLength() constRenvoie une variable std::size_t qui représente le nombre total de tous les éléments dans toutes les dimensions du tableau.
GetUpperBound(int)Renvoie la borne supérieure de la dimension spécifiée.
idx_get(int) const overrideRenvoie l’élément à l’index spécifié.
idx_set(int, T) overrideDéfinit la valeur spécifiée comme l’élément du tableau à l’index spécifié.
IndexOf(const T&) const overrideDétermine l’index de la première occurrence de l’élément spécifié dans le tableau.
static 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(const ArrayPtr<ArrayType>&, const ValueType&, int)Détermine l’index de la première occurrence de l’élément spécifié dans le tableau à partir de l’index spécifié.
static 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(const T)Remplit le tableau représenté par l’objet actuel avec les valeurs du tableau spécifié.
Initialize()Remplit le tableau avec les objets construits par défaut du type T.
Insert(int, const T&) overrideNon pris en charge car le tableau représenté par l’objet actuel est en lecture seule.
static 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(const ArrayPtr<ArrayType>&, const ValueType&, int)Détermine l’index de la dernière occurrence de l’élément spécifié dans le tableau à partir de l’index spécifié.
static 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() constTrouve le plus grand élément du tableau en utilisant operator<() pour comparer les éléments.
Min() constTrouve le plus petit élément du tableau en utilisant operator<() pour comparer les éléments.
operator[](int)Renvoie un élément à l’index spécifié.
operator[](int) constRenvoie un élément à l’index spécifié.
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 retourné est égal à rend().
rbegin() constRenvoie 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 retourné est égal à rend().
Remove(const T&) overrideNon pris en charge car le tableau représenté par l’objet actuel est en lecture seule.
RemoveAt(int) overrideNon pris en charge car le tableau représenté par l’objet actuel est en lecture seule.
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 repère, tenter d’y accéder entraîne un comportement indéfini.
rend() constRenvoie 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 repère, tenter d’y accéder entraîne un comportement indéfini.
static 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(const ArrayPtr<Type>&)Inverse les éléments du tableau spécifié.
static Reverse(const ArrayPtr<Type>&, int, int)Inverse une plage d’éléments dans le tableau spécifié.
SetTemplateWeakPtr(uint32_t) overrideFait que le tableau traite les pointeurs stockés comme faibles (le cas échéant).
SetValue(const T&, int)Définit la valeur de l’élément à l’index spécifié.
static Sort(const ArrayPtr<Type>&)Trie les éléments du tableau spécifié en utilisant le comparateur par défaut.
static 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(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(const ArrayPtr<Type>&, const SharedPtr<System::Collections::Generic::IComparer<Y>>&)NON IMPLEMENTÉ.
static 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 à l’aide de l’opérateur <.
static 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 à l’aide du comparateur par défaut.
static 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() const overrideObtient l’implémentation de l’itérateur const begin pour le conteneur actuel.
virtualizeBeginIterator() overrideObtient l’implémentation de l’itérateur begin pour le conteneur actuel.
virtualizeEndConstIterator() const overrideObtient l’implémentation de l’itérateur const end pour le conteneur actuel.
virtualizeEndIterator() overrideObtient l’implémentation de l’itérateur end pour le conteneur actuel.

Typedefs

TypedefDescription
const_iteratorType d’itérateur const.
const_reverse_iteratorType d’itérateur inverse const.
EnumerablePtrUn alias pour le type de pointeur partagé pointant vers un objet IEnumerable contenant des éléments de type T.
EnumeratorPtrUn alias pour le type de pointeur partagé pointant vers un objet IEnumerator contenant des éléments de type T.
iteratorType d’itérateur.
reverse_iteratorType d’itérateur inverse.
UnderlyingTypeAlias pour le type utilisé pour représenter chaque élément du tableau.
ValueTypeAlias pour le type des éléments du tableau.

Remarques

#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ée et remplit le tableau.
  auto arrayPtr = MakeObject<Array<int32_t>>(5, 0);
  for (auto i = 0; i < arrayPtr->get_Length(); ++i)
  {
    arrayPtr[i] = 5 - i;
  }

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

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

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

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

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

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

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