logo

Ciclo for basato su intervallo in C++

Il ciclo for basato su intervallo in C++ è stato aggiunto a partire da C++ 11. Esegue un ciclo for su un intervallo. Utilizzato come equivalente più leggibile del tradizionale ciclo for che opera su un intervallo di valori, come tutti gli elementi in un contenitore.

  for ( range_declaration : range_expression )      loop_statement    Parameters :    range_declaration :   a declaration of a named variable, whose type is the  type of the element of the sequence represented by  range_expression, or a reference to that type. Often uses the auto specifier for automatic type  deduction.   range_expression :   any expression that represents a suitable sequence  or a braced-init-list.   loop_statement :   any statement, typically a compound statement, which is the body of the loop.>

Implementazione C++:



C++
// Illustration of range-for loop // using CPP code #include  #include  #include  #include  using namespace std; // Driver int main() {  // Iterating over whole array  vector v = {0, 1, 2, 3, 4, 5};  per (auto i: v) cout<< i << ' ';  cout << '
';  // the initializer may be a braced-init-list  for (int n : { 0, 1, 2, 3, 4, 5 })  cout << n << ' ';  cout << '
';  // Iterating over array  int a[] = { 0, 1, 2, 3, 4, 5 };  for (int n : a)  cout << n << ' ';  cout << '
';  // Just running a loop for every array  // element  for (int n : a)  cout << 'In loop' << ' ';  cout << '
';  // Printing string characters  string str = 'Geeks';  for (char c : str)  cout << c << ' ';  cout << '
';  // Printing keys and values of a map  map MAPPA({ { 1, 1 }, { 2, 2 }, { 3, 3 } });  per (auto i: MAP) cout<< '{' << i.first << ', ' << i.second << '}
'; }>

Produzione
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 In loop In loop In loop In loop In loop In loop G e e k s {1, 1} {2, 2} {3, 3}>


C++ 17 o versione successiva: I loop basati sull'intervallo possono essere utilizzati anche con mappe come queste:

for (auto& [key, value]: myMap) {  cout << key << ' has value ' << value << std::endl; }>

Qui [chiave, valore] funziona come elementi di coppia a cui è possibile accedere direttamente senza specificare la prima o la seconda parola chiave.