pro každý v
Prochází skrze pole nebo kolekci.Toto nestandardní klíčové slovo je k dispozici v projektech v jazyce C++/CLI a v nativním jazyce C++.Jeho použití se však nedoporučuje.Zvažte namísto něj použití standardního příkazu Příkaz For založený na rozsahu (C++).
Všechny moduly runtime
Syntaxe
for each (type identifier in expression) {
statements
}
Parametry
type
Typ identifier.identifier
Iterační proměnná, která představuje prvek kolekce. Jestliže identifier je Operátor sledovacího odkazu (rozšíření komponent C++), lze tento prvek upravit.expression
Výraz pole nebo kolekce.Prvek kolekce musí být takový, aby jej kompilátor mohl převést na typ identifier.statements
Jeden nebo více příkazů ke spuštění.
Poznámky
Příkaz for each se používá k iteraci v rámci kolekce.Prvky v kolekci je možné měnit, ale nelze je přidávat ani odstraňovat.
Příkazy statements jsou spouštěny pro každý prvek pole nebo kolekce.Po dokončení iterace pro všechny prvky v kolekci je kontrola předána příkazu, který následuje po bloku for each.
for each a in jsou kontextová klíčová slova.
Další informace:
prostředí Windows Runtime
Požadavky
Možnost kompilátoru: /ZW
Příklad
Tento příklad ukazuje, jak k iteraci pomocí řetězce využít klíčové slovo for each.
// for_each_string1.cpp
// compile with: /ZW
#include <stdio.h>
using namespace Platform;
ref struct MyClass {
property String^ MyStringProperty;
};
int main() {
String^ MyString = ref new String("abcd");
for each ( char c in MyString )
wprintf("%c", c);
wprintf("/n");
MyClass^ x = ref new MyClass();
x->MyStringProperty = "Testing";
for each( char c in x->MyStringProperty )
wprintf("%c", c);
}
Výstup
Common Language Runtime
Poznámky
Syntaxe CLR je stejná jako syntaxe Všechny moduly runtime s výjimkou následujícího.
expression
Výraz spravovaného pole nebo kolekce.Prvek kolekce musí být takový, aby jej kompilátor mohl převést z typu Object na typ identifier.expression je vyhodnocen jako typ, který implementuje IEnumerable, IEnumerable nebo typ, který definuje metodu GetEnumerator, aby vrátil typ, který implementuje IEnumerator nebo deklaruje všechny metody, které jsou definovány v IEnumerator.
Požadavky
Možnost kompilátoru: /clr
Příklad
Tento příklad ukazuje, jak k iteraci pomocí řetězce využít klíčové slovo for each.
// for_each_string2.cpp
// compile with: /clr
using namespace System;
ref struct MyClass {
property String ^ MyStringProperty;
};
int main() {
String ^ MyString = gcnew String("abcd");
for each ( Char c in MyString )
Console::Write(c);
Console::WriteLine();
MyClass ^ x = gcnew MyClass();
x->MyStringProperty = "Testing";
for each( Char c in x->MyStringProperty )
Console::Write(c);
}
Výstup