Sdílet prostřednictvím


Pole (rozšíření komponent C++)

Platform::Array<T> Zadejte C++/CX, nebo array klíčové slovo v C++/CLI, deklaruje pole Typ a počáteční hodnotu.

Všechny platformy

Pole musí být deklarován pomocí modifikátoru popisovač objektu (^) po uzavření ostrá závorka (>) v deklaraci.

Počet prvků pole není součástí typu.Jednu proměnnou pole můžete odkazovat na pole různých velikostí.

Na rozdíl od standardní C++ indexových je synonymum pro aritmetiky a není komutativní.

Další informace o řadách naleznete zde:

prostředí Windows Runtime

Matice jsou členy Platform oboru názvů.Pole může být pouze jednorozměrné.

Syntaxe

V prvním příkladu syntaxe ref new agregační klíčové pole přidělit.Druhý příklad deklaruje místního pole.

[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 [,...]}
  • Kvalifikátory [Nepovinné]
    Některé tyto specifikátory paměťových tříd: proměnlivý, těkavých, const, extern, statické.

  • array-type
    Typ proměnné pole.Platné typy jsou prostředí Windows Runtime tříd a základní typy, ref tříd a struktur, hodnota třídy a struktur a nativní ukazatele (type*).

  • rank[Nepovinné]
    Počet rozměrů pole.Musí být 1.

  • identifier
    Název proměnné pole.

  • initialization-type
    Typ hodnoty, které inicializovat pole.Obvykle array-type a initialization-type jsou stejného typu.Typy však mohou být různé, pokud je převod z initialization-type na array-type– například pokud initialization-type je odvozen z array-type.

  • initialization-list[Nepovinné]
    Čárkami oddělený seznam hodnot do složených závorek, které prvky pole inicializovat.Například pokud rank-size-list byly (3), který deklaruje jednorozměrné 3 prvky initialization list by {1,2,3}.

Poznámky

V době kompilace můžete zjistit, zda je typ počítají referenční pole s __is_ref_array(type).Další informace naleznete v tématu Podpora kompilátoru pro typové vlastnosti (C++ Component Extensions).

Požadavky

Možnost kompilátoru:/ZW

Příklady

Následující příklad vytvoří jednorozměrné má 100 prvky.

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

Syntaxe

V prvním příkladu syntaxe gcnew klíčové slovo přidělit matici.Druhý příklad deklaruje místního pole.

[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 [,...]}
  • Kvalifikátory [Nepovinné]
    Některé tyto specifikátory paměťových tříd: proměnlivý, těkavých, const, extern, statické.

  • array-type
    Typ proměnné pole.Platné typy jsou prostředí Windows Runtime třídy a základní typy tříd ref a struktur, hodnota třídy a struktur, nativní ukazatele (type*) a nativní typy LUSKU (obyčejný stará data).

  • rank[Nepovinné]
    Počet rozměrů pole.Výchozí hodnota je 1; maximální hodnota je 32.Každou dimenzi pole je pole.

  • identifier
    Název proměnné pole.

  • initialization-type
    Typ hodnoty, které inicializovat pole.Obvykle array-type a initialization-type jsou stejného typu.Typy však mohou být různé, pokud je převod z initialization-type na array-type– například pokud initialization-type je odvozen z array-type.

  • rank-size-list
    Čárkami oddělený seznam velikost každé dimenze v poli.Alternativně Pokud initialization-list parametr zadán, kompilátor může odvodit velikost každé dimenze a rank-size-list lze vynechat.Další informace naleznete v tématu Postupy: Vytváření vícerozměrných polí.

  • initialization-list[Nepovinné]
    Čárkami oddělený seznam hodnot do složených závorek, které prvky pole inicializovat.Čárkami oddělený seznam vnořen nebo inicializační seznam položek, které prvky v vícerozměrné inicializovat.

    Například pokud rank-size-list byly (3), který deklaruje jednorozměrné 3 prvky initialization list by {1,2,3}.Pokud rank-size-list byly (3,2,4), který deklaruje trojrozměrné 3 prvky v první dimenze, 2 prvky ve druhé a třetí, 4 prvky initialization-list by {{1,2,3},{0,0},{-5,10,-21,99}}.)

Poznámky

arrayje Obory názvů Platform, default a cli (rozšíření komponent C++) oboru názvů.

Podobně jako standardní C++ indexy pole jsou počítány od nuly a je subscripted matice pomocí hranatých závorek ([]).Na rozdíl od standardní C++ indexy vícerozměrné pole jsou uvedena v seznamu indexů pro každou dimenzi místo sady operátorů závorka ([]) pro každou dimenzi.Například identifikátorindex1, index2místo identifikátorindex1] index2.

Všechny spravované pole Zdědit System::Array.Jakékoliv metody nebo vlastnosti System::Array lze použít přímo na pole proměnné.

Při přidělování matice typu prvku, jehož je ukazatel-spravované třídy jsou prvky inicializovány 0.

Při přidělování matice jehož typ elementu je typ hodnoty V, výchozí konstruktor pro V platí pro každý prvek pole.Další informace naleznete v tématu .NET Framework – Ekvivalenty k nativním typům C++ (C++/CLI).

V době kompilace můžete zjistit, zda typ je společný jazyk runtime (CLR) pole s __is_ref_array(type).Další informace naleznete v tématu Podpora kompilátoru pro typové vlastnosti (C++ Component Extensions).

Požadavky

Možnost kompilátoru:/clr

Příklady

Následující příklad vytvoří jednorozměrné má 100 prvků a trojrozměrné prvky první dimenze 3, 5 prvků v druhé a 6 prvků ve třetím.

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

Viz také

Koncepty

Rozšíření komponent pro platformy běhového prostředí