Il linguaggio di programmazione C ++ Range Based for Loop è una caratteristica relativamente recente che è stata introdotta per la prima volta in C ++ 11. Range Based for Loops eseguire un ciclo su portata. Lavorano con qualsiasi contenitore che ha un iteratore, inclusi array, vettori, mappe, set e persino tipi definiti dall'utente che implementano le operazioni necessarie.
Sintassi di gamma basata per loop
UN Range Based for Loop ha una sintassi molto semplice. È costituito dalla variabile loop, dal contenitore o dall'intervallo da ripetere e da un colon.
per (gamma_declaration: range_expression) istruzione loop
Range_declaration: L'intervallo-declamazione è la dichiarazione di una variabile con lo stesso tipo degli elementi dell'espressione del componente della gamma. Per determinare automaticamente il tipo di componenti in a Range_Expression, La parola chiave automatica viene spesso utilizzata.
Range_Expression: Ogni espressione che rappresenta un elenco di elementi è un Range_Expression.
Dichiarazione del loop: Il corpo di un ciclo per il ciclo è costituito da una o più affermazioni che devono essere ripetute fino alla fine di Range_Expression.
Metodi per eseguire il ciclo basato su intervallo
Esistono tre metodi che possono essere utilizzati Range Based for Loop.
Metodo 1: usando array
Range Based for Loop può essere eseguito usando array come questo.
#includere
Utilizzo dello spazio dei nomi std;
int main ()
int NUMARRAY [] = 6, 7, 8, 9, 10;
per (int n: numarray)
cout << n << " ";
restituzione 0;
Nel codice sopra, è stato inizializzato un array di interi chiamato NumArray. Quindi gli elementi di Numarray sono stati stampati usando un Range Based for Loop.
Produzione
Metodo 2: usando i vettori
Range Based for Loop può essere eseguito usando vettori come questo.
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
int x;
vettorev = 1, 2, 3, 4, 5;
per (int x: v)
cout << x << " ";
restituzione 0;
Nel codice sopra, un vettore chiamato v è stato inizializzato. Qui, gli elementi del vettore V sono stati stampati utilizzando un Range Based for Loop.
Produzione
Metodo 3: dichiarare la raccolta all'interno del loop
Range Based for Loop può anche essere dichiarato all'interno del ciclo. Funziona in modo simile a come farebbe un vero array o un vettore.
#includere
Utilizzo dello spazio dei nomi std;
int main ()
for (int n: 5, 10, 15, 20, 25)
cout << n << " ";
restituzione 0;
Nel codice sopra, la raccolta viene dichiarata all'interno del ciclo stesso e quindi stampata.
Produzione
Vantaggi e svantaggi della gamma basati per loop
Range Based for Loop ha più benefici che convenzionali per Loop in diversi modi, in particolare quando si lavora con i contenitori. Poiché la variabile loop è definita all'interno del ciclo e l'intervallo è esplicitamente dichiarato, rende il codice molto più breve e più facile da comprendere. Sono anche più sicuri, in quanto non è necessario preoccuparsi di errori off-by-one o altri errori di indicizzazione. Sono più adattabili poiché possono usare qualsiasi contenitore, indipendentemente dal suo tipo o dimensione. IL Range Based for Loop ha diversi vantaggi, uno dei quali è che rende il nostro codice più pulito e più semplice da capire.
Range Based for Loops avere alcune restrizioni, però. Poiché la variabile loop è una copia o un riferimento all'elemento anziché l'elemento reale, non può essere utilizzata per alterare gli elementi del contenitore. Poiché l'intera gamma viene costantemente iterata, non possiamo saltare alcun elemento o iterare solo su una parte dei dati.
Conclusione
Range Based for Loop è una caratteristica potente e versatile del linguaggio di programmazione C ++. In confronto al convenzionale per i loop, offrono una maggiore sicurezza e flessibilità insieme a un approccio chiaro e leggibile per iterare attraverso i contenitori e ridurre il codice. Range Based for Loop è un must da imparare per i programmatori C ++.