C ++ Ranged for Loop (med eksempler)

I denne vejledning lærer vi om C ++ -området for sløjfer og dets bedste praksis ved hjælp af eksempler.

C ++ 11 introducerede den rangerede forløkke. Denne forsløjfe bruges specifikt med samlinger som arrays 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 forgentager sløjfen med rækkevidde arrayet num fra begyndelsen til slutningen. Den intvariable var gemmer værdien af array element i hver iteration.

Dens syntaks er,

 for (rangeDeclaration : rangeExpression) ( // code )

I ovenstående eksempel

  • rækkevidde Erklæring -int var
  • rangeExpression - num
Arbejdet med ranged for loop i C ++

Eksempel 1: Rangeret til løkke ved hjælp af 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; )

Produktion

 1 2 3 4 5

I dette eksempel erklærede og initialiserede vi en intmatrix med navnet numArray. Her brugte vi den varierede forløkke til at udskrive elementerne i numArray.

  • første iteration - n tager værdien af ​​det første medlem af arrayet, hvilket er1
  • anden iteration - n tager værdien af 2og udskrives derefter og så videre.

Bemærk: Området for sløjfe gentager automatisk arrayet fra begyndelsen til slutningen. Vi behøver ikke at specificere antallet af iterationer i sløjfen.

Eksempel 2: C ++ Rangeret til løkke ved hjælp af 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; )

Produktion

 1 2 3 4 5

Eksempel 3: Erklær indsamling inde 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; )

Produktion

 1 2 3 4 5

Her har vi erklæret samlingen inden for selve sløjfen, dvs.

 rangeExpression = (1, 2, 3, 4, 5)

Dette er også en gyldig måde at bruge den rangerede forsløjfe på, og det fungerer på samme måde som når vi bruger en faktisk matrix eller vektor.

C ++ Ranged for Loop Best Practices

I ovenstående eksempler har vi deklareret en variabel i forsløjfen til at gemme hvert element i samlingen i hver iteration.

 int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )

Det er dog bedre at skrive den rækkevidde baseret på loop som denne:

 // access memory location of elements of num for (int &var : num) ( // code )

Bemærk brugen af &før var. Her,

  • int var : num- Kopierer hvert element af num til variablen var i hver iteration. Dette er ikke godt for computerhukommelse.
  • int &var : num- Kopierer ikke hvert element af num til var. I stedet får du adgang til elementerne i num direkte fra selve num. Dette er mere effektivt.

Bemærk: Den &Operatøren er kendt som reference operatør. Vi lærer mere om det i C ++ pointer.

Arbejdet med adresse peger i C ++ varierede for loop

Bemærk: Hvis vi ikke ændrer array / vector / collection inden i loop, er det bedre at bruge constnøgleordet i områdedeklaration.

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

Interessante artikler...