C ++ rangert for løkke (med eksempler)

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 forslø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 forgjentar rekkevidden sløyfen matrisen num fra begynnelsen til slutten. Den intvariable 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
Arbeid av varierte for loop i C ++

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 intmatrise med navnet numArray. Her brukte vi den varierte forsløyfen til å skrive ut elementene i numArray.

  • første iterasjon - n tar verdien av det første medlemmet av matrisen, som er1
  • andre iterasjon - n tar verdien av 2og 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 forlø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.

Arbeidet med adressepekingen i C ++ varierte for løkke

Merk: Hvis vi ikke endrer matrisen / vektoren / samlingen i sløyfen, er det bedre å bruke constnøkkelordet i områdedeklarasjonen.

 // collection is not modified in the loop for (const int &var : num) ( // code )

Interessante artikler...