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:
Como: criar matrizes de Arrays gerenciados (Arrays irregulares)
Como: uso gerenciados Arrays como parâmetros de tipo de modelo
Como: classificação personalizada usando critérios de Arrays
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++).
Requisitos
Opção de compilador: /ZW
Exemplos
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++).
Requisitos
Opção de compilador: /clr
Exemplos
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