Compartilhar via


Matrizes (Extensões de Componentes C++)

Platform::Array<T> em C++/CX, ou a palavra-chave de array em C++/CLI, declarar uma matriz de um tipo especificado e um valor inicial.

Todas as Plataformas

A matriz deve ser declarada usando o modificador de alça-à- objeto (^) após o colchete (>) na declaração.

O número de elementos da matriz não é parte do tipo.Uma variável pode referir-se a matriz de matrizes de tamanhos diferentes.

A o contrário do C++ padrão, a subscrição não é um sinónimo para o ponteiro aritmético e não é comutativa.

Para obter mais informações sobre arrays, consulte:

Tempo de Execução do Windows

Matrizes são membros do namespace de Platform .Matrizes podem ser apenas unidimensionais.

Sintaxe

O primeiro exemplo de sintaxe usa a palavra-chave de distribuição de ref new para atribuir uma matriz.o segundo exemplo declara uma 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 [,...]}
  • qualificadores [opcional]
    Um ou mais de esses especificadores da classe de armazenamento: mutável, temporário, const, extern, static.

  • array-type
    O tipo da variável de matriz.Os tipos são válidos classes de Tempo de Execução do Windows e tipos de fundamento, classes e estruturas de referência, classes e estruturas de valor, e ponteiros nativos (type*).

  • rank [opcional]
    O número de dimensões da matriz.Deve ser 1.

  • identifier
    O nome da variável de matriz.

  • initialization-type
    O tipo dos valores que inicializam a matriz.normalmente, array-type e initialization-type são o mesmo tipo.Em o entanto, os tipos podem ser diferentes se há uma conversão de initialization-type a array-type— por exemplo, se initialization-type é derivado de array-type.

  • initialization-list [opcional]
    Uma lista de valores delimitada por vírgulas colchetes encaracolado que inicializam os elementos da matriz.Por exemplo, se rank-size-list foi (3), que declara uma matriz unidimensional de elementos 3, initialization list pode ser {1,2,3}.

Comentários

Você pode detectar em tempo de compilação se um tipo é uma matriz com __is_ref_array(de apóstype).Para obter mais informações, consulte Suporte para Compilador de Traços de Tipo (Extensões de Componentes C++).

ts4c4dw6.collapse_all(pt-br,VS.110).gifRequisitos

Opção de compilador: /ZW

ts4c4dw6.collapse_all(pt-br,VS.110).gifExemplos

O exemplo a seguir cria uma matriz unidimensional que tem 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

Sintaxe

O primeiro exemplo de sintaxe usa a palavra-chave de gcnew para atribuir uma matriz.o segundo exemplo declara uma 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 [,...]}
  • qualificadores [opcional]
    Um ou mais de esses especificadores da classe de armazenamento: mutável, temporário, const, extern, static.

  • array-type
    O tipo da variável de matriz.Os tipos são válidos classes de Tempo de Execução do Windows e os tipos de fundamento, classes e estruturas os de referência, classes e estruturas de valor, os ponteiros nativos (type*), e a VAGEM nativo (dados antigos lisos) necessários.

  • rank [opcional]
    O número de dimensões da matriz.O padrão é 1; o máximo é 32.Cada dimensão da matriz é propriametne uma matriz.

  • identifier
    O nome da variável de matriz.

  • initialization-type
    O tipo dos valores que inicializam a matriz.normalmente, array-type e initialization-type são o mesmo tipo.Em o entanto, os tipos podem ser diferentes se há uma conversão de initialization-type a array-type— por exemplo, se initialization-type é derivado de array-type.

  • rank-size-list
    Uma lista delimitada por vírgulas de tamanho de cada dimensão da matriz.Como alternativa, se o parâmetro de initialization-list for especificado, o compilador pode deduzir o tamanho de cada dimensão e rank-size-list pode ser omitido.Para obter mais informações, consulte Como: criar matrizes de Multidimension.

  • initialization-list [opcional]
    Uma lista de valores delimitada por vírgulas colchetes encaracolado que inicializam os elementos da matriz.Ou uma lista delimitada por vírgulas de itens aninhados de lista inicialização- que inicializam os elementos em uma matriz de dimensional.

    Por exemplo, se rank-size-list foi (3), que declara uma matriz unidimensional de elementos 3, initialization list pode ser {1,2,3}.Se rank-size-list foi (3,2,4), que declara uma matriz tridimensional de 3 elementos na primeira dimensão, 2 elementos na segunda, e 4 elementos no terceiro, initialization-list podem ser {{1,2,3},{0,0},{-5,10,-21,99}}.)

Comentários

array está no namespace de Namespaces Plataforma, padrão e cli (Extensões de Componentes C++) .

Como o C++ padrão, os índices de uma matriz são de base zero, e uma matriz subscripted usando os colchetes ([]).A o contrário do C++ padrão, os índices de uma matriz de dimensional são especificados em uma lista de índices para cada dimensão em vez de um conjunto de operadores de quadrado- colchete ([]) para cada dimensão.Por exemplo, identificador[] index2index1, em vez de identificadorindex1[] [] index2.

todas as matrizes gerenciados herdam de System::Array.Qualquer método ou propriedade de System::Array podem ser aplicados diretamente à variável de matriz.

Quando você atribui uma matriz cujo tipo é o tipo de elemento a uma classe gerenciada, os elementos são 0 inicializado.

Quando você atribui uma matriz cujo tipo de elemento é um tipo de valor V, o construtor padrão para V é aplicado a cada elemento da matriz.Para obter mais informações, consulte .NET Framework equivalentes para tipos C++ nativo (C + + / CLI).

Em tempo de compilação, você pode detectar se um tipo é uma matriz de (CLR) do common language runtime com __is_ref_array(type).Para obter mais informações, consulte Suporte para Compilador de Traços de Tipo (Extensões de Componentes C++).

ts4c4dw6.collapse_all(pt-br,VS.110).gifRequisitos

Opção de compilador: /clr

ts4c4dw6.collapse_all(pt-br,VS.110).gifExemplos

O exemplo a seguir cria uma matriz unidimensional que tem 100 elementos, e uma matriz tridimensional que tem 3 elementos na primeira dimensão, 5 elementos na segunda, e 6 elementos no terceiro.

// 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();
}

Consulte também

Conceitos

Extensões de componente para plataformas de tempo de execução