Compartir a través de


Matrices (Extensiones de componentes de C++)

Platform::Array<T> escribe en C++/CX, o la palabra clave array en C++/CLI, se declara una matriz de un tipo y un valor inicial especificados.

Todas las plataformas

La matriz se debe declarar con el modificador de identificador-a- objeto (^) después del corchete angular de cierre (>) en la declaración.

El número de elementos de la matriz no es parte del tipo.Una variable de matriz puede hacer referencia a las matrices de tamaños diferentes.

A diferencia de C++ estándar, la suscripción no es un sinónimo de la aritmética de punteros y no es conmutativa.

Para obtener más información sobre matrices, vea:

Windows en tiempo de ejecución

Las matrices son miembros del espacio de nombres Platform .Las matrices pueden ser sólo unidimensionales.

Sintaxis

El primer ejemplo de sintaxis utiliza la palabra clave de agregado ref new para asignar una matriz.El segundo ejemplo se declara una matriz local.

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier = ref new [Platform::]Array< initialization-type > [{initialization-list [,...]}]

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier = {initialization-list [,...]}
  • calificadores [opcional]
    Uno o más de estos especificadores de clase de almacenamiento: mutable, volatile, const, extern, estático.

  • array-type
    El tipo de la variable de matriz.Los tipos válidos son clases Windows en tiempo de ejecución y tipos fundamentales, clases y structs de referencia, clases y structs de valor, y punteros nativos (type*).

  • rank [opcional]
    Número de dimensiones de la matriz.Debe ser 1.

  • identifier
    El nombre de la variable de matriz.

  • initialization-type
    El tipo de los valores que se inicializan la matriz.Normalmente, array-type y initialization-type son el mismo tipo.Sin embargo, los tipos pueden ser diferentes si hay una conversión initialization-type a array-type(por ejemplo, si initialization-type se deriva array-type.

  • initialization-list [opcional]
    Una lista de valores delimitada por comas entre llaves que inicializan elementos de la matriz.Por ejemplo, si rank-size-list era (3), que declara una matriz unidimensional de 3 elementos, initialization list podría ser {1,2,3}.

Comentarios

Puede detectar en tiempo de compilación si un tipo es una matriz referencia- contado con __is_ref_array(type).Para obtener más información, vea Compatibilidad de compilador para type traits (Extensiones de componentes de C++).

ts4c4dw6.collapse_all(es-es,VS.110).gifRequisitos

Opción del compilador: /ZW

ts4c4dw6.collapse_all(es-es,VS.110).gifEjemplos

El ejemplo siguiente se crea una matriz unidimensional con 100 elementos.

// cwr_array.cpp
// compile with: /ZW
using namespace Platform;
ref class MyClass {};
int main() {
   // one-dimensional array
   Array<MyClass^>^ My1DArray = ref new Array<MyClass^>(100);
   My1DArray[99] = ref new MyClass();
}

Common Language Runtime

Sintaxis

El primer ejemplo de sintaxis utiliza la palabra clave gcnew para asignar una matriz.El segundo ejemplo se declara una matriz local.

[qualifiers] [cli::]array<[qualifiers] array-type [,rank] >^ identifier = gcnew [cli::]array< initialization-type [,rank] >(rank-size-list[,...]) [{initialization-list [,...]}]

[qualifiers] [cli::]array<[qualifiers] array-type [,rank] >^ identifier = {initialization-list [,...]}
  • calificadores [opcional]
    Uno o más de estos especificadores de clase de almacenamiento: mutable, volatile, const, extern, estático.

  • array-type
    El tipo de la variable de matriz.Los tipos válidos son clases Windows en tiempo de ejecución y tipos fundamentales, clases y structs de referencia, clases y structs value, punteros nativos (type*), y tipos nativo POD (datos antiguos de nivel).

  • rank [opcional]
    Número de dimensiones de la matriz.El valor predeterminado es 1; el valor máximo es 32.Cada dimensión de la matriz es en sí mismo una matriz.

  • identifier
    El nombre de la variable de matriz.

  • initialization-type
    El tipo de los valores que se inicializan la matriz.Normalmente, array-type y initialization-type son el mismo tipo.Sin embargo, los tipos pueden ser diferentes si hay una conversión initialization-type a array-type(por ejemplo, si initialization-type se deriva array-type.

  • rank-size-list
    Una lista delimitada por comas del tamaño de cada dimensión de la matriz.Como alternativa, si se especifica el parámetro initialization-list , el compilador puede deducir el tamaño de cada dimensión y rank-size-list puede omitir.Para obtener más información, vea Cómo: cree las matrices de Multidimension.

  • initialization-list [opcional]
    Una lista de valores delimitada por comas entre llaves que inicializan elementos de la matriz.O una lista delimitada por comas de elementos anidados inicialización-lista inicializar los elementos de una matriz multidimensional.

    Por ejemplo, si rank-size-list era (3), que declara una matriz unidimensional de 3 elementos, initialization list podría ser {1,2,3}.Si rank-size-list era (3,2,4), que declara una matriz tridimensional de 3 elementos en la primera dimensión, 2 elementos en segundo, y 4 elementos en el tercero, initialization-list podrían ser {{1,2,3},{0,0},{-5,10,-21,99}}.)

Comentarios

array está en el espacio de nombres Espacios de nombres de plataforma, predeterminado y CLI (Extensiones de componentes de C++) .

Como C++ estándar, los índices de una matriz cero- se basan, y una matriz subscripted mediante corchetes ([]).A diferencia de C++ estándar, los índices de una matriz multidimensional se especifican en una lista de índices para cada dimensión en lugar de un conjunto de operadores entre corchetes ([]) para cada dimensión.Por ejemplo, identificador[index1, index2] en lugar identificador[index1] [ index2].

Todas las matrices administradas heredan System::Array.Cualquier método o propiedad System::Array se puede aplicar directamente a la variable de matriz.

Cuando asigna una matriz cuyo tipo de elemento está puntero- a una clase administrada, los elementos son 0 inicializado.

Cuando asigna una matriz cuyo tipo de elemento es un tipo de valor V, se aplican al constructor predeterminado para V a cada elemento de matriz.Para obtener más información, vea Equivalentes de .NET Framework para tipos nativos de C++ (C++/CLI).

En tiempo de compilación, puede detectar si un tipo es una matriz de (CLR) de Common Language Runtime con __is_ref_array(type).Para obtener más información, vea Compatibilidad de compilador para type traits (Extensiones de componentes de C++).

ts4c4dw6.collapse_all(es-es,VS.110).gifRequisitos

Opción del compilador: /clr

ts4c4dw6.collapse_all(es-es,VS.110).gifEjemplos

El ejemplo siguiente se crea una matriz unidimensional con 100 elementos, y una matriz tridimensional con 3 elementos en la primera dimensión, 5 elementos en segundo, y 6 elementos en el tercero.

// clr_array.cpp
// compile with: /clr
ref class MyClass {};
int main() {
   // one-dimensional array
   array<MyClass ^> ^ My1DArray = gcnew array<MyClass ^>(100);
   My1DArray[99] = gcnew MyClass();

   // three-dimensional array
   array<MyClass ^, 3> ^ My3DArray = gcnew array<MyClass ^, 3>(3, 5, 6);
   My3DArray[0,0,0] = gcnew MyClass();
}

Vea también

Conceptos

Extensiones de componentes para plataformas de tiempo de ejecución