Clase System::Array

Array class

Clase que representa una estructura de datos de tipo array. Los objetos de esta clase solo deben asignarse usando las funciones System::MakeArray() y System::MakeObject(). Nunca cree una instancia de este tipo en la pila ni usando el operador new, ya que provocará errores en tiempo de ejecución y/o fallos de aserción. Siempre envuelva esta clase en un puntero System::SmartPtr y use dicho puntero para pasarlo a funciones como argumento.

template<typename T>class Array : public virtual System::Object,
                                  public System::Collections::Generic::IList<T>
ParámetroDescripción
TTipo de elementos de un array

Nested classes

Métodos

MétodoDescripción
Add(const T&) overrideNo soportado porque el array representado por el objeto actual es de solo lectura.
Array()Construye un array vacío.
Array(int, const T&)Constructor de llenado.
Array(typename std::enable_if<std::is_arithmetic<T>::value&&std::is_arithmetic<ValueType>::value&&std::is_convertible<ValueType, T>::value, int>::type, ValueType)Constructor de llenado.
Array(int, const T)Constructor de llenado.
Array(vector_t&&)Constructor de movimiento.
Array(const vector_t&)Constructor de copia.
Array(const std::vector<Q>&)Construye un objeto Array y lo llena con valores copiados de un objeto std::vector cuyo tipo de valores es el mismo que T pero diferente de UnderlyingType.
Array(std::vector<Q>&&)Construye un objeto Array y lo llena con valores trasladados de un objeto std::vector cuyo tipo de valores es el mismo que T pero diferente de UnderlyingType.
Array(std::initializer_list<UnderlyingType>)Construye un objeto Array y lo llena con valores de la lista de inicialización especificada que contiene elementos del tipo UnderlyingType.
Array(const std::array<UnderlyingType, InitArraySize>&)Construye un objeto Array y lo llena con valores del array especificado que contiene elementos del tipo UnderlyingType.
Array(std::initializer_list<bool>, int)Construye un objeto Array y lo llena con valores de la lista de inicialización especificada que contiene elementos del tipo bool.
begin()Devuelve un iterador al primer elemento del contenedor. Si el contenedor está vacío, el iterador devuelto será igual a end().
begin() constDevuelve un iterador al primer elemento del contenedor calificado como const. Si el contenedor está vacío, el iterador devuelto será igual a end().
static BinarySearch(System::ArrayPtr<T>, const T&)Realiza una búsqueda binaria en el array ordenado.
static BinarySearch(System::ArrayPtr<T>, const Y&, const SharedPtr<Collections::Generic::IComparer<Z>>&)NO IMPLEMENTADO.
cbegin() constDevuelve un iterador al primer elemento calificado como const del contenedor. Si el contenedor está vacío, el iterador devuelto será igual a cend().
cend() constDevuelve un iterador al elemento que sigue al último elemento del contenedor. Este elemento actúa como un marcador de posición; intentar acceder a él produce un comportamiento indefinido.
Clear() overrideNo soportado porque el array representado por el objeto actual es de solo lectura.
static Clear(const ArrayPtr<Type>&, int, int)Reemplaza count valores a partir del índice startIndex en el array especificado con valores predeterminados.
Clone()Clona el array.
static ConstrainedCopy(const ArrayPtr<SrcType>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copia un rango de elementos de un System.Array comenzando en la fuente especificada.
Contains(const T&) const overrideDetermina si el elemento especificado está en el array.
static ConvertAll(ArrayPtr<InputType>, Converter<InputType, OutputType>)Construye un nuevo objeto Array y lo llena con elementos del array especificado convertidos al tipo OutputType usando el delegado convertidor especificado.
static ConvertAll(ArrayPtr<InputType>, std::function<OutputType(InputType)>)Construye un nuevo objeto Array y lo llena con elementos del array especificado convertidos al tipo OutputType usando el objeto de función convertidora especificado.
static Copy(const ArrayPtr<SrcType>&, const ArrayPtr<DstType>&, int64_t)Copia el número especificado de elementos del array origen al array destino.
static Copy(System::Details::ArrayView<SrcType>, const ArrayPtr<DstType>&, int64_t)Copia el número especificado de elementos de la vista del array origen al array destino.
static Copy(const ArrayPtr<SrcType>&, System::Details::ArrayView<DstType>, int64_t)Copia el número especificado de elementos del array origen a la vista del array destino.
static Copy(System::Details::ArrayView<SrcType>, System::Details::ArrayView<DstType>, int64_t)Copia la cantidad especificada de elementos de la vista del arreglo origen a la vista del arreglo destino.
static Copy(System::Details::StackArray<SrcType, N>&, const ArrayPtr<DstType>&, int64_t)Copia la cantidad especificada de elementos del arreglo origen en la pila al arreglo destino.
static Copy(const ArrayPtr<SrcType>&, System::Details::StackArray<DstType, N>&, int64_t)Copia la cantidad especificada de elementos del arreglo origen al arreglo destino en la pila.
static Copy(System::Details::StackArray<SrcType, NS>&, System::Details::StackArray<DstType, ND>&, int64_t)Copia la cantidad especificada de elementos del arreglo origen en la pila al arreglo destino en la pila.
static Copy(const ArrayPtr<SrcType>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copia una cantidad especificada de elementos del arreglo origen comenzando en el índice especificado hacia la posición especificada en el arreglo destino.
static Copy(System::Details::ArrayView<SrcType>, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copia una cantidad especificada de elementos de la vista del arreglo origen comenzando en el índice especificado hacia la posición especificada en el arreglo destino.
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::ArrayView<DstType>, int64_t, int64_t)Copia una cantidad especificada de elementos del arreglo origen comenzando en el índice especificado hacia la posición especificada en la vista del arreglo destino.
static Copy(System::Details::ArrayView<SrcType>, int64_t, System::Details::ArrayView<DstType>, int64_t, int64_t)Copia una cantidad especificada de elementos de la vista del arreglo origen comenzando en el índice especificado hacia la posición especificada en la vista del arreglo destino.
static Copy(System::Details::StackArray<SrcType, N>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copia una cantidad especificada de elementos del arreglo origen en la pila comenzando en el índice especificado hacia la posición especificada en el arreglo destino.
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::StackArray<DstType, N>&, int64_t, int64_t)Copia una cantidad especificada de elementos del arreglo origen comenzando en el índice especificado hacia la posición especificada en el arreglo destino en la pila.
static Copy(System::Details::StackArray<SrcType, NS>&, int64_t, System::Details::StackArray<DstType, ND>&, int64_t, int64_t)Copia una cantidad especificada de elementos del arreglo origen en la pila comenzando en el índice especificado hacia la posición especificada en el arreglo destino en la pila.
static Copy(System::Details::ArrayView<SrcType>&, int64_t, System::Details::StackArray<DstType, ND>&, int64_t, int64_t)Copia una cantidad especificada de elementos de la vista del arreglo origen comenzando en el índice especificado hacia la posición especificada en el arreglo destino en la pila.
CopyTo(ArrayPtr<T>, int) overrideCopia todos los elementos del arreglo actual al arreglo destino especificado. Los elementos se insertan en el arreglo destino comenzando en el índice especificado por el argumento arrayIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t) constCopia todos los elementos de la matriz actual a la matriz de destino especificada. Los elementos se insertan en la matriz de destino comenzando en el índice especificado por el argumento dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t) constCopia todos los elementos de la matriz actual a la vista de matriz de destino especificada. Los elementos se insertan en la vista de matriz de destino comenzando en el índice especificado por el argumento dstIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t, int64_t, int64_t) constCopia un número especificado de elementos de la matriz actual, comenzando en la posición especificada, a la matriz de destino especificada. Los elementos se insertan en la matriz de destino comenzando en el índice especificado por el argumento dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t, int64_t, int64_t) constCopia un número especificado de elementos de la matriz actual, comenzando en la posición especificada, a la vista de matriz de destino especificada. Los elementos se insertan en la vista de matriz de destino comenzando en el índice especificado por el argumento dstIndex.
Count() constDevuelve un número que representa el total de todos los elementos en todas las dimensiones de la matriz.
crbegin() constDevuelve un iterador inverso al primer elemento del contenedor invertido. Corresponde al último elemento del contenedor no invertido. Si el contenedor está vacío, el iterador devuelto es igual a crend().
crend() constDevuelve un iterador inverso al elemento que sigue al último elemento del contenedor invertido. Corresponde al elemento que precede al primer elemento del contenedor no invertido. Este elemento actúa como un marcador de posición; intentar acceder a él produce un comportamiento indefinido.
data()Devuelve una referencia a la estructura de datos interna utilizada para almacenar los elementos de la matriz.
data() constDevuelve una referencia constante a la estructura de datos interna utilizada para almacenar los elementos de la matriz.
data_ptr()Devuelve un puntero crudo al inicio del búfer de memoria donde se almacenan los elementos de la matriz.
data_ptr() constDevuelve un puntero crudo constante al inicio del búfer de memoria donde se almacenan los elementos de la matriz.
end()Devuelve un iterador al elemento que sigue al último elemento del contenedor. Este elemento actúa como un marcador de posición; intentar acceder a él produce un comportamiento indefinido.
end() constDevuelve un iterador al elemento que sigue al último elemento del contenedor calificado como const. Este elemento actúa como un marcador de posición; intentar acceder a él produce un comportamiento indefinido.
static Exists(ArrayPtr<T>, std::function<bool(T)>)Determina si el objeto Array especificado contiene un elemento que satisface los requisitos del predicado especificado.
static Find(System::ArrayPtr<T>, System::Predicate<T>)Busca el primer elemento en la matriz especificada que satisface las condiciones del predicado especificado.
static FindAll(System::ArrayPtr<T>, System::Predicate<T>)Recupera todos los elementos que coinciden con las condiciones definidas por el predicado especificado.
static FindIndex(System::ArrayPtr<T>, System::Predicate<T>)Busca el primer elemento en la matriz especificada que satisface las condiciones del predicado especificado.
static ForEach(const ArrayPtr<T>&, System::Action<T>)Ejecuta la acción especificada en cada elemento de la matriz especificada.
get_Count() const overrideDevuelve el tamaño de la matriz.
get_IsReadOnly() const overrideIndica si la matriz es de solo lectura.
get_Length() constDevuelve un entero de 32 bits que representa el total de todos los elementos en todas las dimensiones de la matriz.
get_LongLength() constDevuelve un entero de 64 bits que representa el total de todos los elementos en todas las dimensiones de la matriz.
get_Rank() constNO IMPLEMENTADO.
GetEnumerator() overrideDevuelve un puntero al objeto Enumerator que proporciona la interfaz IEnumerator a los elementos de la matriz representada por el objeto actual.
GetLength(int)Devuelve el número de elementos en la dimensión especificada.
GetLongLength(int)Devuelve el número de elementos en la dimensión especificada como entero de 64 bits.
GetLowerBound(int) constDevuelve el límite inferior de la dimensión especificada.
GetSizeTLength() constDevuelve una variable std::size_t que representa el total de todos los elementos en todas las dimensiones de la matriz.
GetUpperBound(int)Devuelve el límite superior de la dimensión especificada.
idx_get(int) const overrideDevuelve el elemento en el índice especificado.
idx_set(int, T) overrideEstablece el valor especificado como el elemento de la matriz en el índice especificado.
IndexOf(const T&) const overrideDetermina el índice de la primera aparición del elemento especificado en el arreglo.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&)Determina el índice de la primera aparición del elemento especificado en el arreglo.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int)Determina el índice de la primera aparición del elemento especificado en el arreglo a partir del índice especificado.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int, int)Determina el índice de la primera aparición del elemento especificado en un rango de elementos del arreglo especificado por el índice de inicio y el número de elementos en el rango.
Init(const T)Llena el arreglo representado por el objeto actual con los valores del arreglo especificado.
Initialize()Llena el arreglo con los objetos construidos por defecto del tipo T.
Insert(int, const T&) overrideNo soportado porque el arreglo representado por el objeto actual es de solo lectura.
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int, int)Determina el índice de la última aparición del elemento especificado en un rango de elementos del arreglo especificado por el índice de inicio y el número de elementos en el rango.
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int)Determina el índice de la última aparición del elemento especificado en el arreglo a partir del índice especificado.
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&)Determina el índice de la última aparición del elemento especificado en el arreglo.
Max() constEncuentra el elemento más grande del arreglo usando operator<() para comparar los elementos.
Min() constEncuentra el elemento más pequeño del arreglo usando operator<() para comparar los elementos.
operator[](int)Devuelve un elemento en el índice especificado.
operator[](int) constDevuelve un elemento en el índice especificado.
rbegin()Devuelve un iterador inverso al primer elemento del contenedor invertido. Corresponde al último elemento del contenedor no invertido. Si el contenedor está vacío, el iterador devuelto es igual a rend().
rbegin() constDevuelve un iterador inverso al primer elemento del contenedor invertido. Corresponde al último elemento del contenedor no invertido. Si el contenedor está vacío, el iterador devuelto es igual a rend().
Remove(const T&) overrideNo soportado porque el array representado por el objeto actual es de solo lectura.
RemoveAt(int) overrideNo soportado porque el arreglo representado por el objeto actual es de solo lectura.
rend()Devuelve un iterador inverso al elemento que sigue al último elemento del contenedor invertido. Corresponde al elemento que precede al primer elemento del contenedor no invertido. Este elemento actúa como un marcador de posición; intentar acceder a él produce un comportamiento indefinido.
rend() constDevuelve un iterador inverso al elemento que sigue al último elemento del contenedor invertido. Corresponde al elemento que precede al primer elemento del contenedor no invertido. Este elemento actúa como un marcador de posición; intentar acceder a él produce un comportamiento indefinido.
static Resize(ArrayPtr<Type>&, int)Cambia el tamaño del arreglo especificado al valor especificado o crea un nuevo arreglo con el tamaño especificado.
static Reverse(const ArrayPtr<Type>&)Invierte los elementos del arreglo especificado.
static Reverse(const ArrayPtr<Type>&, int, int)Invierte un rango de elementos del arreglo especificado.
SetTemplateWeakPtr(uint32_t) overrideHace que el arreglo trate los punteros almacenados como débiles (si corresponde).
SetValue(const T&, int)Establece el valor del elemento en el índice especificado.
static Sort(const ArrayPtr<Type>&)Ordena los elementos del arreglo especificado usando el comparador predeterminado.
static Sort(const ArrayPtr<Type>&, int, int)Ordena un rango de elementos del arreglo especificado usando el comparador predeterminado.
static Sort(const ArrayPtr<Type>&, const SharedPtr<System::Collections::Generic::IComparer<T>>&)Ordena los elementos del arreglo especificado usando el comparador especificado.
static Sort(const ArrayPtr<Type>&, const SharedPtr<System::Collections::Generic::IComparer<Y>>&)NO IMPLEMENTADO.
static Sort(const ArrayPtr<TKey>&, const ArrayPtr<TValue>&)Ordena dos arreglos, uno que contiene claves y el otro los elementos correspondientes, basándose en los valores del arreglo que contiene claves, cuyos elementos se comparan usando operator<.
static Sort(const ArrayPtr<TKey>&, const ArrayPtr<TValue>&, int, int)Ordena dos arreglos, uno que contiene claves y el otro los elementos correspondientes, basándose en los valores del arreglo que contiene claves, cuyos elementos se comparan usando el comparador predeterminado.
static TrueForAll(System::ArrayPtr<T>, System::Predicate<T>)Determina si todos los elementos del arreglo especificado cumplen las condiciones definidas por el predicado especificado.
virtualizeBeginConstIterator() const overrideObtiene la implementación del iterador const begin para el contenedor actual.
virtualizeBeginIterator() overrideObtiene la implementación del iterador begin para el contenedor actual.
virtualizeEndConstIterator() const overrideObtiene la implementación del iterador const end para el contenedor actual.
virtualizeEndIterator() overrideObtiene la implementación del iterador end para el contenedor actual.

Typedefs

TypedefDescripción
const_iteratorTipo de iterador constante.
const_reverse_iteratorTipo de iterador inverso constante.
EnumerablePtrUn alias para el tipo de puntero compartido que apunta a un objeto IEnumerable que contiene elementos del tipo T.
EnumeratorPtrUn alias para el tipo de puntero compartido que apunta a un objeto IEnumerator que contiene elementos del tipo T.
iteratorTipo de iterador.
reverse_iteratorTipo de iterador inverso.
UnderlyingTypeAlias para el tipo usado para representar cada elemento del arreglo.
ValueTypeAlias para el tipo de los elementos del arreglo.

Observaciones

#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()
{
  // Cree y rellene la matriz.
  auto arrayPtr = MakeObject<Array<int32_t>>(5, 0);
  for (auto i = 0; i < arrayPtr->get_Length(); ++i)
  {
    arrayPtr[i] = 5 - i;
  }

  // Imprima los elementos de la matriz.
  Print(arrayPtr);

  // Ordena los elementos del arreglo en orden ascendente.
  Array<int32_t>::Sort(arrayPtr);

  // Imprima los elementos de la matriz.
  Print(arrayPtr);

  // Imprime la cantidad de elementos del arreglo.
  std::cout << arrayPtr->get_Length() << std::endl;

  // Imprime el índice del elemento que es igual a 4.
  std::cout << arrayPtr->IndexOf(4) << std::endl;

  // Redimensiona el arreglo.
  Array<int32_t>::Resize(arrayPtr, 3);

  // Imprima los elementos de la matriz.
  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
*/

Ver también