I denne opplæringen vil vi lære om C ++ rangert for løkker og dens beste praksis ved hjelp av eksempler.
C ++ 11 introduserte rekkevidden for
. Denne for
sløyfen brukes spesielt med samlinger som matriser og vektorer .
For eksempel,
// initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )
Her for
gjentar rekkevidden sløyfen matrisen num fra begynnelsen til slutten. Den int
variable Var lagrer verdien av det gruppeelement i hver iterasjon.
Dens syntaks er,
for (rangeDeclaration : rangeExpression) ( // code )
I eksemplet ovenfor,
- rekkevidde Erklæring -
int var
- rangeExpression - num

Eksempel 1: Rangert for løkke ved hjelp av Array
#include using namespace std; int main() ( // initialize array int numArray() = (1, 2, 3, 4, 5); // use of ranged for loop to print array elements for (int n : numArray) ( cout << n << " "; ) return 0; )
Produksjon
1 2 3 4 5
I dette eksemplet erklærte og initialiserte vi en int
matrise med navnet numArray. Her brukte vi den varierte for
sløyfen til å skrive ut elementene i numArray.
- første iterasjon - n tar verdien av det første medlemmet av matrisen, som er
1
- andre iterasjon - n tar verdien av
2
og skrives deretter ut og så videre.
Merk: Området for sløyfe gjentar automatisk matrisen fra begynnelsen til slutten. Vi trenger ikke spesifisere antall iterasjoner i sløyfen.
Eksempel 2: C ++ Rangert for løkke ved hjelp av vektor
#include #include using namespace std; int main() ( // declare and initialize vector vector num_vector = (1, 2, 3, 4, 5); // print vector elements for (int n : num_vector) ( cout << n << " "; ) return 0; )
Produksjon
1 2 3 4 5
Eksempel 3: Erklær samlingen inne i løkken
#include using namespace std; int main() ( // define the collection in the loop itself for (int n : (1, 2, 3, 4, 5)) ( cout << n << " "; ) return 0; )
Produksjon
1 2 3 4 5
Her har vi erklært samlingen i selve løkken, dvs.
rangeExpression = (1, 2, 3, 4, 5)
Dette er også en gyldig måte å bruke avstandssløyfen på for
, og den fungerer på samme måte som når vi bruker en faktisk matrise eller vektor.
C ++ Ranged for Loop Best Practices
I eksemplene ovenfor har vi erklært en variabel i for
løkken for å lagre hvert element i samlingen i hver iterasjon.
int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )
Imidlertid er det bedre å skrive rangert basert på loop slik:
// access memory location of elements of num for (int &var : num) ( // code )
Legg merke til bruken av &
før var. Her,
int var : num
- Kopierer hvert element av num til var-variabelen i hver iterasjon. Dette er ikke bra for dataminnet.int &var : num
- Kopierer ikke hvert element av num til var. I stedet får du tilgang til elementene i num direkte fra num selv. Dette er mer effektivt.
Merk: Den &
operatøren er kjent som referanse operatør. Vi vil lære mer om det i C ++ pekere.

Merk: Hvis vi ikke endrer matrisen / vektoren / samlingen i sløyfen, er det bedre å bruke const
nøkkelordet i områdedeklarasjonen.
// collection is not modified in the loop for (const int &var : num) ( // code )