Tässä opetusohjelmassa opitaan silmukoiden C ++ -sarjasta ja sen parhaista käytännöistä esimerkkien avulla.
C ++ 11 esitteli vaihtelevan for
silmukan. Tätä for
silmukkaa käytetään erityisesti kokoelmien, kuten matriisien ja vektorien, kanssa .
Esimerkiksi,
// initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )
Tässä for
etäisyyden silmukka toistaa taulukon numeron alusta loppuun. int
Muuttuja var tallentaa arvoa matriisin elementin jokaisen iteraation.
Sen syntakse on,
for (rangeDeclaration : rangeExpression) ( // code )
Yllä olevassa esimerkissä
- alue Ilmoitus -
int var
- rangeExpression - numero

Esimerkki 1: Alue silmukalle käyttämällä matriisia
#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; )
Tuotos
1 2 3 4 5
Tässä esimerkissä ilmoitimme ja int
alustimme taulukon nimeltä NumArray. Tässä käytimme etäisyyssilmukkaa for
tulostamaan numArray-elementit.
- ensimmäinen iteraatio - n ottaa matriisin ensimmäisen jäsenen arvon, joka on
1
- toinen iterointi - n ottaa arvon
2
ja sitten tulostetaan ja niin edelleen.
Huomaa: Silmukan vaihteluväli iteroi taulukon automaattisesti alusta loppuun. Meidän ei tarvitse määrittää silmukassa olevien iteraatioiden määrää.
Esimerkki 2: C ++ -sarja silmukalle vektorin avulla
#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; )
Tuotos
1 2 3 4 5
Esimerkki 3: Ilmoita kokoelma silmukan sisällä
#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; )
Tuotos
1 2 3 4 5
Tässä olemme ilmoittaneet kokoelman itse silmukan sisällä eli
rangeExpression = (1, 2, 3, 4, 5)
Tämä on myös kelvollinen tapa käyttää ranged- for
silmukkaa, ja se toimii samalla tavalla kuin käytettäessä todellista taulukkoa tai vektoria.
C ++ -sarjaan kuuluu silmukan parhaat käytännöt
Edellä mainituissa esimerkeissä olemme ilmoittaneet muuttujan for
silmukassa kokoelman jokaisen elementin tallentamiseksi kussakin iteraatiossa.
int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )
On kuitenkin parempi kirjoittaa vaihtelupohja silmukalle näin:
// access memory location of elements of num for (int &var : num) ( // code )
Huomaa &
ennen var. Tässä,
int var : num
- Kopioi jokaisen num-elementin muuttujaan var kussakin iteraatiossa. Tämä ei ole hyvä tietokoneen muistille.int &var : num
- Ei kopioi kutakin num-elementtiä muuttujaan var. Sen sijaan hän käyttää num-elementtejä suoraan numerosta itse. Tämä on tehokkaampaa.
Huomautus:&
operaattori tunnetaan viite operaattori. Opimme siitä lisää C ++ -osoitteista.

Huomaa: Jos emme muokkaa matriisia / vektoria / kokoelmaa silmukassa, on parempi käyttää const
avainsanaa alueen ilmoituksessa.
// collection is not modified in the loop for (const int &var : num) ( // code )