Classe System::Array

Array class

Classe che rappresenta una struttura dati array. Gli oggetti di questa classe devono essere allocati solo usando le funzioni System::MakeArray() e System::MakeObject(). Non creare mai un’istanza di questo tipo sullo stack o usando l’operatore new, poiché ciò provocherà errori di runtime e/o fallimenti di asserzione. Avvolgi sempre questa classe in un puntatore System::SmartPtr e usa questo puntatore per passarlo alle funzioni come argomento.

template<typename T>class Array : public virtual System::Object,
                                  public System::Collections::Generic::IList<T>
ParametroDescrizione
TTipo degli elementi di un array

Nested classes

Metodi

MetodoDescrizione
Add(const T&) overrideNon supportato perché l’array rappresentato dall’oggetto corrente è di sola lettura.
Array()Costruisce un array vuoto.
Array(int, const T&)Costruttore di riempimento.
Array(typename std::enable_if<std::is_arithmetic<T>::value&&std::is_arithmetic<ValueType>::value&&std::is_convertible<ValueType, T>::value, int>::type, ValueType)Costruttore di riempimento.
Array(int, const T)Costruttore di riempimento.
Array(vector_t&&)Costruttore di spostamento.
Array(const vector_t&)Costruttore di copia.
Array(const std::vector<Q>&)Costruisce un oggetto Array e lo riempie con valori copiati da un oggetto std::vector il cui tipo di valori è lo stesso di T ma diverso da UnderlyingType.
Array(std::vector<Q>&&)Costruisce un oggetto Array e lo riempie con valori spostati da un oggetto std::vector il cui tipo di valori è lo stesso di T ma diverso da UnderlyingType.
Array(std::initializer_list<UnderlyingType>)Costruisce un oggetto Array e lo riempie con valori dalla lista di inizializzazione specificata contenente elementi di tipo UnderlyingType.
Array(const std::array<UnderlyingType, InitArraySize>&)Costruisce un oggetto Array e lo riempie con valori dall’array specificato contenente elementi di tipo UnderlyingType.
Array(std::initializer_list<bool>, int)Costruisce un oggetto Array e lo riempie con valori dalla lista di inizializzazione specificata contenente elementi di tipo bool.
begin()Restituisce un iteratore al primo elemento del contenitore. Se il contenitore è vuoto, l’iteratore restituito sarà uguale a end().
begin() constRestituisce un iteratore al primo elemento del contenitore qualificato come const. Se il contenitore è vuoto, l’iteratore restituito sarà uguale a end().
static BinarySearch(System::ArrayPtr<T>, const T&)Esegue una ricerca binaria nell’array ordinato.
static BinarySearch(System::ArrayPtr<T>, const Y&, const SharedPtr<Collections::Generic::IComparer<Z>>&)NON IMPLEMENTATO.
cbegin() constRestituisce un iteratore al primo elemento qualificato come const del contenitore. Se il contenitore è vuoto, l’iteratore restituito sarà uguale a cend().
cend() constRestituisce un iteratore all’elemento successivo all’ultimo elemento del contenitore. Questo elemento funge da segnaposto; tentare di accedervi provoca un comportamento indefinito.
Clear() overrideNon supportato perché l’array rappresentato dall’oggetto corrente è di sola lettura.
static Clear(const ArrayPtr<Type>&, int, int)Sostituisce i valori count a partire dall’indice startIndex nell’array specificato con i valori predefiniti.
Clone()Clona l’array.
static ConstrainedCopy(const ArrayPtr<SrcType>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copia un intervallo di elementi da un System.Array a partire dalla sorgente specificata.
Contains(const T&) const overrideDetermina se l’elemento specificato è presente nell’array.
static ConvertAll(ArrayPtr<InputType>, Converter<InputType, OutputType>)Costruisce un nuovo oggetto Array e lo riempie con gli elementi dell’array specificato convertiti al tipo OutputType utilizzando il delegato convertitore specificato.
static ConvertAll(ArrayPtr<InputType>, std::function<OutputType(InputType)>)Costruisce un nuovo oggetto Array e lo riempie con gli elementi dell’array specificato convertiti al tipo OutputType utilizzando l’oggetto funzione convertitore specificato.
static Copy(const ArrayPtr<SrcType>&, const ArrayPtr<DstType>&, int64_t)Copia il numero specificato di elementi dall’array di origine all’array di destinazione.
static Copy(System::Details::ArrayView<SrcType>, const ArrayPtr<DstType>&, int64_t)Copia il numero specificato di elementi dalla vista dell’array di origine all’array di destinazione.
static Copy(const ArrayPtr<SrcType>&, System::Details::ArrayView<DstType>, int64_t)Copia il numero specificato di elementi dall’array di origine alla vista dell’array di destinazione.
static Copy(System::Details::ArrayView<SrcType>, System::Details::ArrayView<DstType>, int64_t)Copia il numero specificato di elementi dalla vista dell’array di origine alla vista dell’array di destinazione.
static Copy(System::Details::StackArray<SrcType, N>&, const ArrayPtr<DstType>&, int64_t)Copia il numero specificato di elementi dall’array di origine nello stack all’array di destinazione.
static Copy(const ArrayPtr<SrcType>&, System::Details::StackArray<DstType, N>&, int64_t)Copia il numero specificato di elementi dall’array di origine all’array di destinazione nello stack.
static Copy(System::Details::StackArray<SrcType, NS>&, System::Details::StackArray<DstType, ND>&, int64_t)Copia il numero specificato di elementi dall’array di origine nello stack all’array di destinazione nello stack.
static Copy(const ArrayPtr<SrcType>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copia un numero specificato di elementi dall’array di origine a partire dall’indice specificato alla posizione specificata nell’array di destinazione.
static Copy(System::Details::ArrayView<SrcType>, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copia un numero specificato di elementi dalla vista dell’array di origine a partire dall’indice specificato alla posizione specificata nell’array di destinazione.
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::ArrayView<DstType>, int64_t, int64_t)Copia un numero specificato di elementi dall’array di origine a partire dall’indice specificato alla posizione specificata nella vista dell’array di destinazione.
static Copy(System::Details::ArrayView<SrcType>, int64_t, System::Details::ArrayView<DstType>, int64_t, int64_t)Copia un numero specificato di elementi dalla vista dell’array di origine a partire dall’indice specificato alla posizione specificata nella vista dell’array di destinazione.
static Copy(System::Details::StackArray<SrcType, N>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copia un numero specificato di elementi dall’array di origine nello stack a partire dall’indice specificato alla posizione specificata nell’array di destinazione.
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::StackArray<DstType, N>&, int64_t, int64_t)Copia un numero specificato di elementi dall’array di origine a partire dall’indice specificato alla posizione specificata nell’array di destinazione nello stack.
static Copy(System::Details::StackArray<SrcType, NS>&, int64_t, System::Details::StackArray<DstType, ND>&, int64_t, int64_t)Copia un numero specificato di elementi dall’array di origine nello stack a partire dall’indice specificato alla posizione specificata nell’array di destinazione nello stack.
static Copy(System::Details::ArrayView<SrcType>&, int64_t, System::Details::StackArray<DstType, ND>&, int64_t, int64_t)Copia un numero specificato di elementi dalla vista dell’array di origine a partire dall’indice specificato alla posizione specificata nell’array di destinazione nello stack.
CopyTo(ArrayPtr<T>, int) overrideCopia tutti gli elementi dell’array corrente nell’array di destinazione specificato. Gli elementi vengono inseriti nell’array di destinazione a partire dall’indice specificato dall’argomento arrayIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t) constCopia tutti gli elementi dell’array corrente nell’array di destinazione specificato. Gli elementi vengono inseriti nell’array di destinazione a partire dall’indice specificato dall’argomento dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t) constCopia tutti gli elementi dell’array corrente nella vista dell’array di destinazione specificata. Gli elementi vengono inseriti nella vista dell’array di destinazione a partire dall’indice specificato dall’argomento dstIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t, int64_t, int64_t) constCopia un numero specificato di elementi dall’array corrente a partire dalla posizione specificata verso l’array di destinazione specificato. Gli elementi vengono inseriti nell’array di destinazione a partire dall’indice specificato dall’argomento dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t, int64_t, int64_t) constCopia un numero specificato di elementi dall’array corrente a partire da una posizione specificata nella vista dell’array di destinazione. Gli elementi vengono inseriti nella vista dell’array di destinazione a partire dall’indice specificato dall’argomento dstIndex.
Count() constRestituisce un numero che rappresenta il numero totale di tutti gli elementi in tutte le dimensioni dell’array.
crbegin() constRestituisce un iteratore inverso al primo elemento del contenitore invertito. Corrisponde all’ultimo elemento del contenitore non invertito. Se il contenitore è vuoto, l’iteratore restituito è uguale a crend().
crend() constRestituisce un iteratore inverso all’elemento successivo all’ultimo elemento del contenitore invertito. Corrisponde all’elemento precedente al primo elemento del contenitore non invertito. Questo elemento funge da segnaposto; tentare di accedervi provoca un comportamento indefinito.
data()Restituisce un riferimento alla struttura dati interna utilizzata per memorizzare gli elementi dell’array.
data() constRestituisce un riferimento costante alla struttura dati interna utilizzata per memorizzare gli elementi dell’array.
data_ptr()Restituisce un puntatore grezzo all’inizio del buffer di memoria dove sono memorizzati gli elementi dell’array.
data_ptr() constRestituisce un puntatore grezzo costante all’inizio del buffer di memoria dove sono memorizzati gli elementi dell’array.
end()Restituisce un iteratore all’elemento successivo all’ultimo elemento del contenitore. Questo elemento funge da segnaposto; tentare di accedervi provoca un comportamento indefinito.
end() constRestituisce un iteratore all’elemento successivo all’ultimo elemento del contenitore qualificato come const. Questo elemento funge da segnaposto; tentare di accedervi provoca un comportamento indefinito.
static Exists(ArrayPtr<T>, std::function<bool(T)>)Determina se l’oggetto Array specificato contiene un elemento che soddisfa i requisiti del predicato specificato.
static Find(System::ArrayPtr<T>, System::Predicate<T>)Cerca il primo elemento nell’array specificato che soddisfa le condizioni del predicato specificato.
static FindAll(System::ArrayPtr<T>, System::Predicate<T>)Recupera tutti gli elementi che corrispondono alle condizioni definite dal predicato specificato.
static FindIndex(System::ArrayPtr<T>, System::Predicate<T>)Cerca il primo elemento nell’array specificato che soddisfa le condizioni del predicato specificato.
static ForEach(const ArrayPtr<T>&, System::Action<T>)Esegue l’azione specificata su ogni elemento dell’array specificato.
get_Count() const overrideRestituisce la dimensione dell’array.
get_IsReadOnly() const overrideIndica se l’array è di sola lettura.
get_Length() constRestituisce un intero a 32 bit che rappresenta il numero totale di tutti gli elementi in tutte le dimensioni dell’array.
get_LongLength() constRestituisce un intero a 64 bit che rappresenta il numero totale di tutti gli elementi in tutte le dimensioni dell’array.
get_Rank() constNON IMPLEMENTATO.
GetEnumerator() overrideRestituisce un puntatore all’oggetto Enumerator che fornisce l’interfaccia IEnumerator agli elementi dell’array rappresentato dall’oggetto corrente.
GetLength(int)Restituisce il numero di elementi nella dimensione specificata.
GetLongLength(int)Restituisce il numero di elementi nella dimensione specificata come intero a 64 bit.
GetLowerBound(int) constRestituisce il limite inferiore della dimensione specificata.
GetSizeTLength() constRestituisce una variabile std::size_t che rappresenta il numero totale di tutti gli elementi in tutte le dimensioni dell’array.
GetUpperBound(int)Restituisce il limite superiore della dimensione specificata.
idx_get(int) const overrideRestituisce l’elemento all’indice specificato.
idx_set(int, T) overrideImposta il valore specificato come elemento dell’array all’indice specificato.
IndexOf(const T&) const overrideDetermina l’indice della prima occorrenza dell’elemento specificato nell’array.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&)Determina l’indice della prima occorrenza dell’elemento specificato nell’array.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int)Determina l’indice della prima occorrenza dell’elemento specificato nell’array a partire dall’indice specificato.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int, int)Determina l’indice della prima occorrenza dell’elemento specificato in un intervallo di elementi dell’array specificato dall’indice di partenza e dal numero di elementi nell’intervallo.
Init(const T)Riempie l’array rappresentato dall’oggetto corrente con i valori dell’array specificato.
Initialize()Riempie l’array con gli oggetti costruiti di default del tipo T.
Insert(int, const T&) overrideNon supportato perché l’array rappresentato dall’oggetto corrente è di sola lettura.
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int, int)Determina l’indice dell’ultima occorrenza dell’elemento specificato in un intervallo di elementi dell’array specificato dall’indice di partenza e dal numero di elementi nell’intervallo.
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int)Determina l’indice dell’ultima occorrenza dell’elemento specificato nell’array a partire dall’indice specificato.
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&)Determina l’indice dell’ultima occorrenza dell’elemento specificato nell’array.
Max() constTrova l’elemento più grande nell’array usando operator<() per confrontare gli elementi.
Min() constTrova l’elemento più piccolo nell’array usando operator<() per confrontare gli elementi.
operator[](int)Restituisce un elemento all’indice specificato.
operator[](int) constRestituisce un elemento all’indice specificato.
rbegin()Restituisce un iteratore inverso al primo elemento del contenitore invertito. Corrisponde all’ultimo elemento del contenitore non invertito. Se il contenitore è vuoto, l’iteratore restituito è uguale a rend().
rbegin() constRestituisce un iteratore inverso al primo elemento del contenitore invertito. Corrisponde all’ultimo elemento del contenitore non invertito. Se il contenitore è vuoto, l’iteratore restituito è uguale a rend().
Remove(const T&) overrideNon supportato perché l’array rappresentato dall’oggetto corrente è di sola lettura.
RemoveAt(int) overrideNon supportato perché l’array rappresentato dall’oggetto corrente è di sola lettura.
rend()Restituisce un iteratore inverso all’elemento successivo all’ultimo elemento del contenitore invertito. Corrisponde all’elemento precedente al primo elemento del contenitore non invertito. Questo elemento funge da segnaposto; tentare di accedervi provoca un comportamento indefinito.
rend() constRestituisce un iteratore inverso all’elemento successivo all’ultimo elemento del contenitore invertito. Corrisponde all’elemento precedente al primo elemento del contenitore non invertito. Questo elemento funge da segnaposto; tentare di accedervi provoca un comportamento indefinito.
static Resize(ArrayPtr<Type>&, int)Cambia la dimensione dell’array specificato al valore specificato o crea un nuovo array con la dimensione specificata.
static Reverse(const ArrayPtr<Type>&)Inverte gli elementi nell’array specificato.
static Reverse(const ArrayPtr<Type>&, int, int)Inverte un intervallo di elementi nell’array specificato.
SetTemplateWeakPtr(uint32_t) overrideFa sì che l’array tratti i puntatori memorizzati come deboli (se applicabile).
SetValue(const T&, int)Imposta il valore dell’elemento all’indice specificato.
static Sort(const ArrayPtr<Type>&)Ordina gli elementi nell’array specificato usando il comparatore predefinito.
static Sort(const ArrayPtr<Type>&, int, int)Ordina un intervallo di elementi nell’array specificato usando il comparatore predefinito.
static Sort(const ArrayPtr<Type>&, const SharedPtr<System::Collections::Generic::IComparer<T>>&)Ordina gli elementi nell’array specificato usando il comparatore specificato.
static Sort(const ArrayPtr<Type>&, const SharedPtr<System::Collections::Generic::IComparer<Y>>&)NON IMPLEMENTATO.
static Sort(const ArrayPtr<TKey>&, const ArrayPtr<TValue>&)Ordina due array, uno contenente le chiavi e l’altro gli elementi corrispondenti, in base ai valori dell’array contenente le chiavi, i cui elementi sono confrontati usando operator<.
static Sort(const ArrayPtr<TKey>&, const ArrayPtr<TValue>&, int, int)Ordina due array, uno contenente le chiavi e l’altro gli elementi corrispondenti, in base ai valori dell’array contenente le chiavi, i cui elementi sono confrontati usando il comparatore predefinito.
static TrueForAll(System::ArrayPtr<T>, System::Predicate<T>)Determina se tutti gli elementi nell’array specificato soddisfano le condizioni definite dal predicato specificato.
virtualizeBeginConstIterator() const overrideOttiene l’implementazione dell’iteratore const begin per il contenitore corrente.
virtualizeBeginIterator() overrideOttiene l’implementazione dell’iteratore begin per il contenitore corrente.
virtualizeEndConstIterator() const overrideOttiene l’implementazione dell’iteratore const end per il contenitore corrente.
virtualizeEndIterator() overrideOttiene l’implementazione dell’iteratore end per il contenitore corrente.

Typedefs

TypedefDescrizione
const_iteratorTipo di iteratore const.
const_reverse_iteratorTipo di iteratore inverso const.
EnumerablePtrUn alias per il tipo di puntatore condiviso che punta a un oggetto IEnumerable contenente elementi del tipo T.
EnumeratorPtrUn alias per il tipo di puntatore condiviso che punta a un oggetto IEnumerator contenente elementi del tipo T.
iteratorTipo di iteratore.
reverse_iteratorTipo di iteratore inverso.
UnderlyingTypeAlias per il tipo usato per rappresentare ogni elemento dell’array.
ValueTypeAlias per il tipo degli elementi dell’array.

Osservazioni

#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()
{
  // Crea e riempi l'array.
  auto arrayPtr = MakeObject<Array<int32_t>>(5, 0);
  for (auto i = 0; i < arrayPtr->get_Length(); ++i)
  {
    arrayPtr[i] = 5 - i;
  }

  // Stampa gli elementi dell'array.
  Print(arrayPtr);

  // Ordina gli elementi dell'array in ordine crescente.
  Array<int32_t>::Sort(arrayPtr);

  // Stampa gli elementi dell'array.
  Print(arrayPtr);

  // Stampa il conteggio degli elementi dell'array.
  std::cout << arrayPtr->get_Length() << std::endl;

  // Stampa l'indice dell'elemento che è uguale a 4.
  std::cout << arrayPtr->IndexOf(4) << std::endl;

  // Ridimensiona l'array.
  Array<int32_t>::Resize(arrayPtr, 3);

  // Stampa gli elementi dell'array.
  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
*/

Vedi anche