logo

Ciclo for basato su intervallo in C++

In questo argomento discuteremo del ciclo for basato su intervallo nel linguaggio di programmazione C++. Il linguaggio C++ ha introdotto un nuovo concetto di ciclo for basato su intervalli in C++11 e versioni successive, che è molto migliore del normale ciclo For. Un ciclo for basato su intervallo non richiede una codifica di grandi dimensioni per implementare l'iterazione del ciclo for. È un iteratore sequenziale che ripete ogni elemento del contenitore in un intervallo (dall'inizio alla fine).

Ciclo for basato su intervallo in C++

Sintassi

 for (range_declaration : range_expression ) loop statement 
    range_declaration:Viene utilizzato per dichiarare una variabile il cui tipo è uguale ai tipi degli elementi raccolti rappresentati da range_expression o riferimento a quel tipo.espressione_intervallo:Definisce un'espressione che rappresenta la sequenza opportuna di elementi.istruzione del ciclo:Definisce il corpo del ciclo for basato su intervallo che contiene una o più istruzioni da eseguire ripetutamente fino alla fine dell'espressione-intervallo.

Nota: se non conosciamo il tipo di dati degli elementi contenitore, possiamo utilizzare la parola chiave auto che identifica automaticamente il tipo di dati di range_expression.

Programma per stampare ogni elemento dell'array utilizzando il ciclo for basato su intervallo

Consideriamo un esempio per stampare l'array int e double utilizzando il ciclo for basato su intervallo in C++.

programma.cpp

 #include using namespace std; int main () { int arr1 [5] = { 10, 20, 30, 40, 50}; double darr [5] = { 2.4, 4.5, 1.5, 3.5, 4.0 }; // use range based for loop for ( const auto &var : arr1 ) { cout << var << ' ' ; } // use auto keyword to automatically specify the data type of darr container. for ( const auto &var : darr ) { cout << var << ' ' ; } return 0; } 

Produzione

 10 20 30 40 50 2.4 4.5 1.5 3.5 4.0 

Programma per dimostrare il vettore nell'intervallo in base al ciclo for

Scriviamo un semplice programma per implementare il vettore nell'intervallo basato sul ciclo for.

js variabile globale

Programma2.cpp

 #include #include using namespace std; int main() { int x; // declare integer variable // declare vector variable vector vect = {5, 10 , 25, 20, 25}; // display vector elements for ( int x : vect) { cout << x << ' '; } return 0; } 

Produzione

 5 10 25 20 25 

Programma per stampare gli array utilizzando il ciclo for Range based in C++ con riferimento

Consideriamo un esempio per stampare gli elementi dell'array utilizzando il ciclo for basato su intervallo in C++.

Programma3.cpp

 #include #include #include using namespace std; int main(){ array data = {1, 3, -2, 4, 6, 7, 9}; cout << ' Before updating the elements: ' << endl; for (int x : data){ cout << x << ' '; } // pass the references for (int &itemRef : data){ itemRef *= 3; } cout << endl << ' After modification of the elements: ' << endl; for (int x : data){ cout << x << ' '; } cout << endl; return 0; } 

Produzione

se altrimenti se altrimenti se java
 Before updating the elements: 1 3 -2 4 6 7 9 After modification of the elements: 3 9 -6 12 18 21 27 

Ciclo for nidificato basato su intervallo

Quando un ciclo è definito all'interno del corpo di un altro ciclo, il ciclo viene chiamato ciclo for nidificato. Allo stesso modo, quando definiamo un intervallo in un ciclo all'interno di un altro ciclo basato su intervallo, la tecnica è nota come ciclo for nidificato basato su intervallo.

Sintassi:

 for ( int x : range_expression) // outer loop { for ( int y : range_expression) // inner loop { // statement to be executed } // statement to be executed } 

Nella sintassi precedente, definiamo un ciclo for basato su intervallo all'interno di un altro ciclo. Qui chiamiamo ciclo for interno ed esterno basato su intervallo in C++.

Programma per stampare il ciclo for nidificato basato su intervalli in C++

Considera un esempio per dimostrare l'intervallo nidificato basato sul ciclo for nel linguaggio di programmazione C++.

Intervallo.cpp

 #include using namespace std; int main () { int arr1[4] = { 0, 1, 2, 3 }; int arr2[5] = { 1, 2, 3, 4, 5 }; // use nested range based for loop for ( int x : arr1 ) { // declare nested loop for ( int y : arr2 ) { cout << ' x = ' << x << ' and j = ' << y << endl; } } return 0; } 

Produzione

 x = 0 and j = 1 x = 0 and j = 2 x = 0 and j = 3 x = 0 and j = 4 x = 0 and j = 5 x = 1 and j = 1 x = 1 and j = 2 x = 1 and j = 3 x = 1 and j = 4 x = 1 and j = 5 x = 2 and j = 1 x = 2 and j = 2 x = 2 and j = 3 x = 2 and j = 4 x = 2 and j = 5 x = 3 and j = 1 x = 3 and j = 2 x = 3 and j = 3 x = 3 and j = 4 x = 3 and j = 5 

Qual è la differenza tra il ciclo for tradizionale e il ciclo for basato su intervallo?

UN ciclo for tradizionale viene utilizzato per eseguire ripetutamente il blocco di codice finché la condizione specificata non è vera. Un ciclo for tradizionale ha tre parametri, l'inizializzazione della variabile, specifica la condizione e l'ultimo è il contatore che viene incrementato di uno se la condizione rimane vera.

Sintassi:

 for ( variable_initialization; specify_condition; updated_counter) { // statement to be executed; } 

Ciclo basato sull'intervallo

D'altra parte, abbiamo un nuovo ciclo for basato su intervallo disponibile in C++ 11 e versioni successive. Ha due parametri, la dichiarazione di intervallo e l'espressione range_. Viene anche utilizzato per eseguire ripetutamente il blocco di codice in un intervallo.

partecipazione all'aggiornamento mysql

Sintassi

 for ( range_declaration : range_ expression ) { loop _statement; // statement to be executed; } 

range_declaration viene utilizzato per dichiarare il tipo di variabile relativa a range_expression (contenitore). Range_expression: è proprio come un contenitore che contiene gli stessi tipi di elementi in modo sequenziale. loop_statement definisce l'istruzione che viene eseguita all'interno del ciclo for.

Vantaggi del ciclo for basato su intervallo

  1. È facile da usare e anche la sua sintassi è semplice.
  2. Un ciclo for basato su intervallo non richiede il calcolo del numero di elementi in un contenitore
  3. Riconosce gli elementi iniziali e finali dei contenitori.
  4. Possiamo facilmente modificare le dimensioni e gli elementi del contenitore.
  5. Non crea alcuna copia degli elementi.
  6. È molto più veloce del tradizionale ciclo for.
  7. Di solito utilizza la parola chiave auto per riconoscere il tipo di dati degli elementi contenitore.

Svantaggio del ciclo for basato su intervallo

  1. Non può attraversare una parte di un elenco.
  2. Non può essere utilizzato per attraversare in ordine inverso
  3. Non può essere utilizzato nei puntatori.
  4. Non offre l'indice degli elementi correnti.