Paano Gamitin ang Range Based para sa Loop sa C++

Paano Gamitin Ang Range Based Para Sa Loop Sa C



Ang C++ programming language nakabatay sa saklaw para sa loop ay isang medyo kamakailang tampok na unang ipinakilala sa C++11. Batay sa saklaw para sa mga loop magsagawa ng loop over range. Gumagana ang mga ito sa anumang container na may iterator, kabilang ang mga array, vector, mapa, set, at kahit na mga uri na tinukoy ng user na nagpapatupad ng mga kinakailangang operasyon.

Syntax ng Range-Based para sa Loop

A nakabatay sa saklaw para sa loop ay may napakasimpleng syntax. Binubuo ito ng loop variable, ang lalagyan o hanay na susuriin, at isang colon.







para sa ( range_declaration : range_expression ) loop na pahayag



range_declaration: Ang range-declaration ay ang deklarasyon ng isang variable na may parehong uri ng mga elemento ng expression ng range-component. Upang awtomatikong matukoy ang uri ng mga bahagi sa a range_expression , ang auto keyword ay madalas na ginagamit.



range_expression: Ang bawat expression na kumakatawan sa isang listahan ng mga elemento ay a range_expression .





loop na pahayag: Ang katawan ng isang para sa loop ay binubuo ng isa o higit pang mga pahayag na dapat ulitin hanggang sa dulo ng range_expression.

Mga Paraan para Magsagawa ng Range-Based para sa Loop

May tatlong paraan na maaaring gamitin para sa nakabatay sa saklaw para sa loop .



Paraan 1: Paggamit ng Mga Array

Batay sa saklaw para sa loop maaaring patakbuhin gamit ang mga array na tulad nito.

#include
gamit ang namespace std;

int pangunahing ( ) {
int numArray [ ] = { 6 , 7 , 8 , 9 , 10 } ;
para sa ( int n : numArray ) {
cout << n << '' ;
}
bumalik 0 ;
}

Sa code sa itaas, nasimulan ang isang integer array na tinatawag na numArray. Pagkatapos ang mga elemento ng numArray ay na-print gamit ang a nakabatay sa saklaw para sa loop .

Output

Paraan 2: Paggamit ng mga Vector

Batay sa saklaw para sa loop maaaring patakbuhin gamit ang mga vector na tulad nito.

#include
#include
gamit ang namespace std;
int pangunahing ( )
{
int x;
vector < int > sa = { 1 , 2 , 3 , 4 , 5 } ;
para sa ( int x: v )
{
cout << x << '' ;
}
bumalik 0 ;
}

Sa code sa itaas, tinawag ang isang vector sa ay nasimulan. Dito, ang mga elemento ng vector v ay inilimbag gamit ang a nakabatay sa saklaw para sa loop.

Output

Paraan 3: Ideklara ang Koleksyon sa Loob ng Loop

Batay sa saklaw para sa loop maaari ding ideklara sa loob ng loop. Ito ay gumagana nang katulad sa kung paano gagawin ng isang aktwal na array o vector.

#include

gamit ang namespace std;
int pangunahing ( ) {
para sa ( int n : { 5 , 10 , labinlima , dalawampu , 25 } ) {
cout << n << '' ;
}
bumalik 0 ;
}

Sa code sa itaas, ang koleksyon ay ipinahayag sa loob ng loop mismo at pagkatapos ay naka-print.

Output

Mga Kalamangan at Kahinaan ng Range Based para sa Loop

Batay sa saklaw para sa loop ay may mas maraming benepisyo kaysa sa karaniwan para sa mga loop sa maraming paraan, lalo na kapag nagtatrabaho sa mga lalagyan. Dahil ang loop variable ay tinukoy sa loob ng loop at ang saklaw ay tahasang nakasaad, ginagawa nitong mas maikli at mas madaling maunawaan ang code. Mas ligtas din ang mga ito, dahil hindi na kailangang mag-alala tungkol sa mga off-by-one na error o iba pang pagkakamali sa pag-index. Mas madaling ibagay ang mga ito dahil maaari silang gumamit ng anumang lalagyan, anuman ang uri o sukat nito. Ang nakabatay sa saklaw para sa loop ay may ilang mga benepisyo, isa na rito ay ginagawa nitong mas malinis at mas madaling maunawaan ang aming code.

Batay sa saklaw para sa mga loop mayroon silang ilang mga paghihigpit, bagaman. Dahil ang loop variable ay isang kopya ng o isang reference sa elemento sa halip na sa aktwal na elemento, hindi ito magagamit upang baguhin ang mga elemento ng container. Dahil ang buong saklaw ay patuloy na inuulit, hindi namin maaaring laktawan ang anumang elemento o umulit sa isang bahagi lamang ng data.

Konklusyon

Batay sa saklaw para sa loop ay isang malakas at maraming nalalaman na tampok ng C++ programming language. Kung ihahambing sa nakasanayan na para sa mga loop, nag-aalok ang mga ito ng pinahusay na kaligtasan at flexibility kasama ng isang malinaw at nababasang diskarte upang umulit sa mga lalagyan at bawasan ang code. Batay sa saklaw para sa loop ay kailangang matutunan para sa mga programmer ng C++.