Ebben az oktatóanyagban példák segítségével megismerhetjük a hurkok C ++ tartományát és bevált módszereit.
A C ++ 11 bevezette a távolsági for
kört. Ezt a for
hurkot kifejezetten olyan gyűjteményeknél használják, mint a tömbök és a vektorok .
Például,
// initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )
Itt a ranged for
hurok iterálja a tömb számát az elejétől a végéig. A int
var változó az egyes iterációkban tárolja a tömb elem értékét.
Szintaxisa:
for (rangeDeclaration : rangeExpression) ( // code )
A fenti példában
- rangeDeclaration -
int var
- rangeExpression - szám

1. példa: Hurokba sorolható a tömb használatával
#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; )
Kimenet
1 2 3 4 5
Ebben a példában deklaráltuk és inicializáltuk a int
numArray nevű tömböt. Itt a ranged for
hurok segítségével nyomtattuk ki a numArray elemeit.
- első iteráció - n a tömb első tagjának értékét veszi fel, ami
1
- második iteráció - n az értékét veszi
2
, majd kinyomtatja és így tovább.
Megjegyzés: A tartomány tartománya automatikusan ismétli a tömböt az elejétől a végéig. Nem kell megadnunk az ismétlések számát a ciklusban.
2. példa: C ++ a hurokhoz vektor használatával tartozik
#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; )
Kimenet
1 2 3 4 5
3. példa: A gyűjtemény deklarálása a hurokban
#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; )
Kimenet
1 2 3 4 5
Itt deklaráltuk a gyűjteményt magában a hurokban, azaz
rangeExpression = (1, 2, 3, 4, 5)
Ez a távolsági for
hurok használatának is érvényes módja , és ugyanúgy működik, mint amikor tényleges tömböt vagy vektort használunk.
A C ++ a Hurok legjobb gyakorlatok kategóriájába tartozik
A fenti példákban deklaráltunk egy változót a for
ciklusban, hogy a gyűjtemény minden elemét minden iterációban tároljuk.
int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )
Azonban jobb, ha a tartományt a ciklus alapján írjuk meg :
// access memory location of elements of num for (int &var : num) ( // code )
Figyelje meg a &
var. Előtti használatát . Itt,
int var : num
- Másolja a num minden elemét a var változóba az egyes iterációkban. Ez nem jó a számítógép memóriájához.int &var : num
- Nem másolja a num egyes elemeit a var-ba. Ehelyett közvetlenül a num elemeiből érheti el a num elemeit. Ez hatékonyabb.
Megjegyzés: Az &
operátor referencia operátor néven ismert. A C ++ mutatókban többet megtudunk róla.

Megjegyzés: Ha nem a tömböt / vektort / gyűjteményt módosítjuk a cikluson belül, akkor jobb, ha a const
kulcsszót a tartománydeklarációban használjuk .
// collection is not modified in the loop for (const int &var : num) ( // code )