Jak používat rozsah založený pro smyčku v C++

Jak Pouzivat Rozsah Zalozeny Pro Smycku V C



Programovací jazyk C++ rozsahová smyčka for je relativně nedávná funkce, která byla poprvé představena v C++11. Smyčky for založené na rozsahu provést smyčku přes rozsah. Pracují s jakýmkoli kontejnerem, který má iterátor, včetně polí, vektorů, map, sad a dokonce i uživatelsky definovaných typů, které implementují potřebné operace.

Syntaxe Range-Based pro smyčku

A rozsahová smyčka for má velmi přímou syntaxi. Skládá se z proměnné smyčky, kontejneru nebo rozsahu, kterým se má iterovat, a dvojtečky.







pro ( deklarace_rozsahu: výraz_rozsahu ) příkaz smyčky



deklarace rozsahu: deklarace rozsahu je deklarace proměnné stejného typu jako prvky výrazu komponenty rozsahu. Chcete-li automaticky určit typ součástí v a rozsah_výraz , často se používá klíčové slovo auto.



rozsah_výraz: Každý výraz, který představuje seznam prvků, je a rozsah_výraz .





příkaz smyčky: Tělo cyklu for se skládá z jednoho nebo více příkazů, které se musí opakovat až do konce rozsahu_výrazu.

Metody pro provedení na základě rozsahu pro smyčku

Existují tři způsoby, které lze použít rozsahová smyčka for .



Metoda 1: Použití polí

Smyčka for založená na rozsahu lze spustit pomocí polí, jako je toto.

#include
pomocí jmenného prostoru std;

int main ( ) {
int numArray [ ] = { 6 , 7 , 8 , 9 , 10 } ;
pro ( int n: numArray ) {
cout << n << '' ;
}
vrátit se 0 ;
}

Ve výše uvedeném kódu bylo inicializováno celočíselné pole s názvem numArray. Poté byly prvky numArray vytištěny pomocí a rozsahová smyčka for .

Výstup

Metoda 2: Použití vektorů

Smyčka for založená na rozsahu lze spustit pomocí vektorů, jako je tento.

#include
#include
pomocí jmenného prostoru std;
int main ( )
{
int x;
vektor < int > v = { 1 , 2 , 3 , 4 , 5 } ;
pro ( int x: v )
{
cout << X << '' ;
}
vrátit se 0 ;
}

Ve výše uvedeném kódu se nazývá vektor v byl inicializován. Zde byly prvky vektoru v vytištěny pomocí a rozsahová smyčka for.

Výstup

Metoda 3: Deklarace kolekce uvnitř smyčky

Smyčka for založená na rozsahu lze také deklarovat uvnitř smyčky. Funguje podobně jako skutečné pole nebo vektor.

#include

pomocí jmenného prostoru std;
int main ( ) {
pro ( int n: { 5 , 10 , patnáct , dvacet , 25 } ) {
cout << n << '' ;
}
vrátit se 0 ;
}

Ve výše uvedeném kódu je kolekce deklarována uvnitř samotné smyčky a poté vytištěna.

Výstup

Výhody a nevýhody rozsahu založeného pro smyčku

Smyčka for založená na rozsahu má více výhod než konvenční pro smyčky několika způsoby, zejména při práci s kontejnery. Protože je proměnná smyčky definována uvnitř smyčky a rozsah je výslovně uveden, kód je mnohem kratší a snáze srozumitelný. Jsou také bezpečnější, protože se není třeba obávat chyb typu off-by-one nebo jiných chyb v indexování. Jsou přizpůsobivější, protože mohou používat jakýkoli kontejner bez ohledu na jeho typ nebo velikost. The rozsahová smyčka for má několik výhod, jednou z nich je, že činí náš kód čistším a snáze srozumitelným.

Smyčky for založené na rozsahu mají však určitá omezení. Protože proměnná smyčky je kopií prvku nebo odkazem na něj, nikoli skutečným prvkem, nelze ji použít ke změně prvků kontejneru. Vzhledem k tomu, že celý rozsah je neustále iterován, nemůžeme přeskočit žádné prvky ani iterovat pouze část dat.

Závěr

Smyčka for založená na rozsahu je výkonná a všestranná funkce programovacího jazyka C++. Ve srovnání s konvenčními smyčkami for nabízejí zvýšenou bezpečnost a flexibilitu spolu s jasným a čitelným přístupem k iteraci kontejnerů a redukci kódu. Smyčka for založená na rozsahu je pro programátory C++ nutností.