„C ++“ diapazonas pagal kilpą (su pavyzdžiais)

Šioje pamokoje su pavyzdžių pagalba sužinosime apie C ++ linijas ir jos geriausią praktiką.

C ++ 11 pristatė diapazoną for. Ši forkilpa specialiai naudojama tokioms kolekcijoms kaip masyvai ir vektoriai .

Pavyzdžiui,

 // initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )

Čia fordiapazono kilpa pakartoja masyvo skaičių nuo pradžios iki pabaigos. intKintamasis var saugo iš masyvo elementu kiekvienoje iteracijoje vertę.

Jo sintaksė yra

 for (rangeDeclaration : rangeExpression) ( // code )

Ankstesniame pavyzdyje

  • diapazonas Deklaracija -int var
  • rangeExpression - skaičius
C ++ diapazono ciklo darbas

1 pavyzdys: diapazonas naudojamas naudojant masyvą

 #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; )

Rezultatas

 1 2 3 4 5

Šiame pavyzdyje mes paskelbėme ir inicijavome intmasyvą pavadinimu numArray. Čia mes panaudojome fordiapazono kilpą, kad išspausdintume numArray elementus.

  • pirma iteracija - n ima pirmojo masyvo nario vertę, kuri yra1
  • antrasis kartojimas - n ima reikšmę, 2tada atspausdinama ir pan.

Pastaba: Kilpos diapazonas automatiškai pakartoja masyvą nuo jo pradžios iki pabaigos. Mums nereikia nurodyti kartojimų skaičiaus cikle.

2 pavyzdys: C ++ diapazonas naudojamas naudojant vektorių

 #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; )

Rezultatas

 1 2 3 4 5

3 pavyzdys: deklaruokite kolekciją ciklo viduje

 #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; )

Rezultatas

 1 2 3 4 5

Čia mes deklaravome kolekciją pačiame cikle, t

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

Tai taip pat yra tinkamas fordiapazono kilpos naudojimo būdas ir jis veikia taip pat, kaip ir tada, kai naudojame faktinį masyvą ar vektorių.

„C ++“ pasirinko geriausios praktikos pavyzdžius

Ankstesniuose pavyzdžiuose mes deklaravome kintamąjį, kad forkiekvienas kolekcijos elementas būtų saugomas kiekvienoje iteracijoje.

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

Tačiau geriau parašyti diapazoną pagal kilpą taip:

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

Atkreipkite dėmesį į &prieš var. Čia

  • int var : num- Nukopijuoja kiekvieną numerio elementą į kintamąjį kintamąjį kiekvienoje iteracijoje. Tai nėra naudinga kompiuterio atminčiai.
  • int &var : num- Nekopijuoja kiekvieno numerio elemento į var. Vietoj to, num numerio elementus pasiekia tiesiogiai iš paties num. Tai yra efektyviau.

Pastaba:& operatorius yra žinomas kaip atskaitos operatorius. Sužinosime daugiau apie tai C ++ rodyklėse.

Darbas adreso nukreipimo C ++ diapazone diapazonas

Pastaba: Jei mes nemodifikuojame masyvo / vektoriaus / kolekcijos cikle, geriau naudoti constraktinį žodį diapazono deklaracijoje.

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

Įdomios straipsniai...