U ovom uputstvu uz primjere ćemo naučiti o C ++-u za petlje i njegove najbolje prakse.
C ++ 11 predstavio je forpetlju s rangiranjem . Ova se forpetlja posebno koristi za zbirke kao što su nizovi i vektori .
Na primjer,
// initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )
Ovdje rangirana forpetlja ponavlja niz polja od početka do kraja. intVarijabla var pohranjuje vrijednost polja elementa u svakom ponavljanju.
Njegova sintaksa je,
for (rangeDeclaration : rangeExpression) ( // code )
U gornjem primjeru,
- rangeDeclaration -
int var - rangeExpression - num
Rad petlje Range for u C ++
Primjer 1: Raspon za petlju pomoću niza
#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; )
Izlaz
1 2 3 4 5
U ovom smo primjeru deklarirali i inicijalizirali intniz nazvan numArray. Ovdje smo rangiranu forpetlju koristili za ispis elemenata numArray.
- prva iteracija - n uzima vrijednost prvog člana niza, što je
1 - druga iteracija - n uzima vrijednost
2i zatim se ispisuje i tako dalje.
Napomena: Petlja za raspon for automatski ponavlja niz od početka do kraja. Ne trebamo navesti broj iteracija u petlji.
Primjer 2: C ++ raspon za petlju pomoću vektora
#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; )
Izlaz
1 2 3 4 5
Primjer 3: Prijavite zbirku unutar petlje
#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; )
Izlaz
1 2 3 4 5
Ovdje smo proglasili kolekciju unutar same petlje, tj
rangeExpression = (1, 2, 3, 4, 5)
Ovo je također valjan način korištenja rangirane forpetlje i djeluje na isti način kao kada koristimo stvarni niz ili vektor.
C ++ u rasponu za najbolje primjere iz prakse
U gornjim primjerima deklarirali smo varijablu u forpetlji za spremanje svakog elementa zbirke u svaku iteraciju.
int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )
Međutim, bolje je napisati rangirano temeljeno na petlju ovako:
// access memory location of elements of num for (int &var : num) ( // code )
Primijetite upotrebu &prije var. Ovdje,
int var : num- Kopira svaki element num u varijablu var u svakoj iteraciji. To nije dobro za memoriju računala.int &var : num- Ne kopira svaki element num u var. Umjesto toga, elementima num pristupa izravno iz samog broja. Ovo je učinkovitije.
Napomena:& operater je poznat kao referentna operatora. O tome ćemo saznati više u pokazivačima na C ++.
Rad usmjeravanja adrese u C ++-u kretao se prema petlji
Napomena: Ako ne mijenjamo niz / vektor / kolekciju unutar petlje, bolje je upotrijebiti constključnu riječ u deklaraciji raspona.
// collection is not modified in the loop for (const int &var : num) ( // code )








