Come utilizzare l'intervallo in base al loop in C ++

Come utilizzare l'intervallo in base al loop in C ++

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;
vettore v = 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 ++.