Clase System::Array

Array class

Clase que representa una estructura de datos de tipo array. Los objetos de esta clase solo deben asignarse mediante 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 ese puntero para pasarla a funciones como argumento.

template<typename T>class Array : public System::ArrayBase,
                                  public System::Collections::Generic::IList<T>
ParámetroDescripción
TTipo de los 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.
static AsReadOnly(const SharedPtr<Array<T>>&)Convierte el array a una colección de solo lectura.
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 conversor 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 función conversor especificado.
static Copy(const ArrayPtr<SrcType>&, const ArrayPtr<DstType>&, int64_t)Copia la cantidad especificada de elementos del array de origen al array de destino.
static Copy(System::Details::ArrayView<SrcType>, const ArrayPtr<DstType>&, int64_t)Copia la cantidad especificada de elementos de la vista del array de origen al array de destino.
static Copy(const ArrayPtr<SrcType>&, System::Details::ArrayView<DstType>, int64_t)Copia la cantidad especificada de elementos del array de origen a la vista del array de destino.
static Copy(System::Details::ArrayView<SrcType>, System::Details::ArrayView<DstType>, int64_t)Copia la cantidad especificada de elementos de la vista del array de origen a la vista del array de destino.
static Copy(System::Details::StackArray<SrcType, N>&, const ArrayPtr<DstType>&, int64_t)Copia la cantidad especificada de elementos del array de origen en la pila al array de destino.
static Copy(const ArrayPtr<SrcType>&, System::Details::StackArray<DstType, N>&, int64_t)Copia la cantidad especificada de elementos del array de origen al array de 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 array de origen en la pila al array de 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 array de origen comenzando en el índice especificado a la posición especificada en el array de 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 array de origen comenzando en el índice especificado a la posición especificada en el array de destino.
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::ArrayView<DstType>, int64_t, int64_t)Copia una cantidad especificada de elementos del array de origen comenzando en el índice especificado a la posición especificada en la vista del array de 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 array de origen comenzando en el índice especificado a la posición especificada en la vista del array de destino.
static Copy(System::Details::StackArray<SrcType, N>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Copia una cantidad especificada de elementos del array de origen en la pila comenzando en el índice especificado a la posición especificada en el array de destino.
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::StackArray<DstType, N>&, int64_t, int64_t)Copia una cantidad especificada de elementos del array de origen comenzando en el índice especificado a la posición especificada en el array de 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 array de origen en la pila comenzando en el índice especificado a la posición especificada en el array de 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 array de origen comenzando en el índice especificado a la posición especificada en el array de destino en la pila.
CopyTo(ArrayPtr<T>, int) overrideCopia todos los elementos del array actual al array de destino especificado. Los elementos se insertan en el array de destino comenzando en el índice especificado por el argumento arrayIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t) constCopia todos los elementos del array actual al array de destino especificado. Los elementos se insertan en el array de destino comenzando en el índice especificado por el argumento dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t) constCopia todos los elementos del array actual a la vista del array de destino especificada. Los elementos se insertan en la vista del array de destino comenzando en el índice especificado por el argumento dstIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t, int64_t, int64_t) constCopia una cantidad especificada de elementos del array actual comenzando en la posición especificada al array de destino especificado. Los elementos se insertan en el array de destino comenzando en el índice especificado por el argumento dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t, int64_t, int64_t) constCopia una cantidad especificada de elementos del array actual comenzando en la posición especificada a la vista del array de destino especificada. Los elementos se insertan en la vista del array 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 del array.
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 del array.
data() constDevuelve una referencia constante a la estructura de datos interna utilizada para almacenar los elementos del array.
data_ptr()Devuelve un puntero crudo al comienzo del búfer de memoria donde se almacenan los elementos del array.
data_ptr() constDevuelve un puntero crudo constante al comienzo del búfer de memoria donde se almacenan los elementos del array.
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() const overrideDevuelve un entero de 32 bits que representa el número total de todos los elementos en todas las dimensiones de la matriz.
get_LongLength() constDevuelve un entero de 64 bits que representa el número 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 número 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 la matriz.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&)Determina el índice de la primera aparición del elemento especificado en la matriz.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int)Determina el índice de la primera aparición del elemento especificado en la matriz 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 de la matriz especificado por el índice de inicio y el número de elementos en el rango.
Init(const T)Llena la matriz representada por el objeto actual con los valores de la matriz especificada.
Initialize()Llena la matriz con los objetos construidos por defecto del tipo T.
Insert(int, const T&) overrideNo compatible porque la matriz representada 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 de la matriz 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 la matriz 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.
raw_data_ptr() overrideDevuelve un puntero al primer elemento de un arreglo unidimensional. Para arreglos multidimensionales el resultado es indefinido.
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 compatible porque la matriz representada 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<Type>&, const System::Comparison<T>&)Ordena los elementos del arreglo especificado usando la comparación especificada.
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 las 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 las 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 end const iterator para el contenedor actual.
virtualizeEndIterator() overrideObtiene la implementación del end iterator para el contenedor actual.

Typedefs

TypedefDescripción
const_iteratorTipo de iterador const.
const_reverse_iteratorTipo de iterador inverso const.
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()
{
  // Crea y llena la matriz.
  auto arrayPtr = MakeObject<Array<int32_t>>(5, 0);
  for (auto i = 0; i < arrayPtr->get_Length(); ++i)
  {
    arrayPtr[i] = 5 - i;
  }

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

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

  // Imprime 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);

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