logo

Räckviddsbaserad för loop i C++

I det här ämnet kommer vi att diskutera den räckviddsbaserade för loop i programmeringsspråket C++. C++-språket introducerade ett nytt koncept av den intervallbaserade for loop i C++11 och senare versioner, vilket är mycket bättre än den vanliga For-loopen. En räckviddsbaserad for loop kräver inte stor kodning för att implementera för loop iteration. Det är en sekventiell iterator som itererade varje element i behållaren över ett intervall (från början till slut).

Räckviddsbaserad för loop i C++

Syntax

 for (range_declaration : range_expression ) loop statement 
    range_declaration:Den används för att deklarera en variabel vars typ är densamma som typerna av de insamlade elementen som representeras av range_expression eller referens till den typen.range_expression:Den definierar ett uttryck som representerar den lämpliga sekvensen av element.loop-sats:Den definierar kroppen för den intervallbaserade for-loopen som innehåller en eller flera satser som ska köras upprepade gånger till slutet av intervalluttrycket.

Obs! Om vi ​​inte känner till datatypen för behållarelementen kan vi använda nyckelordet auto som automatiskt identifierar datatypen för range_expression.

Program för att skriva ut varje element i arrayen med intervallbaserat för loop

Låt oss överväga ett exempel för att skriva ut int- och dubbelmatrisen med den intervallbaserade för loop i C++.

program.cpp

pandas pivot
 #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; } 

Produktion

 10 20 30 40 50 2.4 4.5 1.5 3.5 4.0 

Program för att demonstrera vektorn i intervall baserat för loop

Låt oss skriva ett enkelt program för att implementera vektorn i intervall baserat för loop.

Program2.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; } 

Produktion

natasha dalal
 5 10 25 20 25 

Program för att skriva ut arrayerna med Range based for loop i C++ med referens

Låt oss överväga ett exempel för att skriva ut arrayelementen med intervallbaserat för loop i C++.

Program3.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; } 

Produktion

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

Kapslad räckviddsbaserad för loop

När en loop definieras inuti kroppen av en annan loop, kallas loopen en kapslad för loop. På liknande sätt, när vi definierar ett intervall i en slinga inuti en annan räckviddsbaserad slinga, är tekniken känd som en kapslad räckviddsbaserad slinga.

välj från flera tabeller i sql

Syntax:

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

I ovanstående syntax definierar vi ett områdesbaserat för loop inuti en annan loop. Här kallar vi inre och yttre omfångsbaserad för loop i C++.

Program för att skriva ut det kapslade intervallet baserat för loop i C++

Betrakta ett exempel för att demonstrera det kapslade intervallet baserat för loop i programmeringsspråket C++.

Range.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; } 

Produktion

 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 

Vad är skillnaden mellan traditionell för loop och räckviddsbaserad för loop?

A traditionell för loop används för att upprepade gånger exekvera kodblocket tills det angivna villkoret är sant. En traditionell för loop har tre parametrar, initiering av variabeln, specificera villkoret, och den sista är en räknare som ökas med en om villkoret förblir sant.

Syntax:

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

Räckviddsbaserad loop

statiskt nyckelord i java

Å andra sidan har vi en ny intervallbaserad för loop tillgänglig i C++ 11 och senare version. Den har två parametrar, områdesdeklaration och uttrycket range_. Den används också för att upprepade gånger exekvera kodblocket över ett intervall.

Syntax

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

Range_declaration används för att deklarera typen av variabel som är relaterad till range_expression (behållare). Range_expression: Det är precis som en behållare som innehåller samma typer av element på ett sekventiellt sätt. loop_statementet definierar satsen som exekveras inuti för loop.

Fördelar med den intervallbaserade för loop

  1. Det är lätt att använda, och dess syntax är också enkel.
  2. En intervallbaserad for loop kräver inte beräkning av antalet element i en container
  3. Den känner igen behållarnas start- och slutelement.
  4. Vi kan enkelt ändra behållarens storlek och delar.
  5. Det skapar ingen kopia av elementen.
  6. Det är mycket snabbare än det traditionella för loop.
  7. Den använder vanligtvis nyckelordet auto för att känna igen datatypen för behållarelementen.

Nackdelen med den intervallbaserade för loop

  1. Den kan inte gå igenom en del av en lista.
  2. Den kan inte användas för att köra i omvänd ordning
  3. Det kan inte användas i pekare.
  4. Den erbjuder inte att indexera de aktuella elementen.