Š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 yra
1 - 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 )








