C ++ pentru buclă (cu exemple)

În acest tutorial, vom afla despre C ++ pentru bucle și cele mai bune practici ale acesteia, cu ajutorul exemplelor.

C ++ 11 a introdus forbucla la distanță . Această forbuclă este utilizată în mod special cu colecții precum matrici și vectori .

De exemplu,

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

Aici, forbucla la distanță iterează numărul matricei de la începutul până la sfârșit. intVar variabilă stochează valoarea elementului matrice în fiecare iterație.

Sintaxa sa este,

 for (rangeDeclaration : rangeExpression) ( // code )

În exemplul de mai sus,

  • rangeDeclaration -int var
  • rangeExpression - num
Funcționarea buclei variate în C ++

Exemplul 1: Ranged for Loop Using Array

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

Ieșire

 1 2 3 4 5

În acest exemplu, am declarat și inițializat o intmatrice numită numArray. Aici, am folosit forbucla la distanță pentru a imprima elementele numArray.

  • prima iterație - n ia valoarea primului membru al matricei, care este1
  • a doua iterație - n ia valoarea 2și este apoi tipărită și așa mai departe.

Notă: Bucla de distanță iterează automat matricea de la început până la sfârșit. Nu trebuie să specificăm numărul de iterații din buclă.

Exemplul 2: C ++ a variat pentru buclă folosind Vector

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

Ieșire

 1 2 3 4 5

Exemplul 3: Declarați colecția în buclă

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

Ieșire

 1 2 3 4 5

Aici, am declarat colecția în cadrul buclei în sine ie

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

Acesta este, de asemenea, un mod valid de a utiliza forbucla la distanță și funcționează în același mod ca atunci când folosim o matrice sau un vector real.

C ++ Ganged for Loop Best Practices

În exemplele de mai sus, am declarat o variabilă în forbuclă pentru a stoca fiecare element al colecției în fiecare iterație.

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

Cu toate acestea, este mai bine să scrieți buclele bazate pe distanță astfel:

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

Observați utilizarea &înainte de var. Aici,

  • int var : num- Copiază fiecare element de num la variabila var din fiecare iterație. Acest lucru nu este bun pentru memoria calculatorului.
  • int &var : num- Nu copiază fiecare element de num în var. În schimb, accesează elementele num direct din num însuși. Acest lucru este mai eficient.

Notă:& Operatorul este cunoscut ca operatorul de referință. Vom afla mai multe despre aceasta în pointerele C ++.

Funcționarea adresei care indică în C ++ a variat pentru buclă

Notă: Dacă nu modificăm matricea / vectorul / colecția din buclă, este mai bine să folosim constcuvântul cheie în declarația de interval.

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

Articole interesante...