C ++ -sarja silmukalle (esimerkkien avulla)

Tässä opetusohjelmassa opitaan silmukoiden C ++ -sarjasta ja sen parhaista käytännöistä esimerkkien avulla.

C ++ 11 esitteli vaihtelevan forsilmukan. Tätä forsilmukkaa 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ä foretäisyyden silmukka toistaa taulukon numeron alusta loppuun. intMuuttuja var tallentaa arvoa matriisin elementin jokaisen iteraation.

Sen syntakse on,

 for (rangeDeclaration : rangeExpression) ( // code )

Yllä olevassa esimerkissä

  • alue Ilmoitus -int var
  • rangeExpression - numero
Silmukan vaihtelu C ++: ssa

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 intalustimme taulukon nimeltä NumArray. Tässä käytimme etäisyyssilmukkaa fortulostamaan numArray-elementit.

  • ensimmäinen iteraatio - n ottaa matriisin ensimmäisen jäsenen arvon, joka on1
  • toinen iterointi - n ottaa arvon 2ja 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- forsilmukkaa, 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 forsilmukassa 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.

Osoitteiden osoittaminen C ++: ssa vaihteli silmukalle

Huomaa: Jos emme muokkaa matriisia / vektoria / kokoelmaa silmukassa, on parempi käyttää constavainsanaa alueen ilmoituksessa.

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

Mielenkiintoisia artikkeleita...