C ++ u rasponu za petlju (s primjerima)

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 je1
  • 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 )

Zanimljivi članci...