Bereik gebaseerd gebruiken voor lus in C ++

Bereik Gebaseerd Gebruiken Voor Lus In C



De programmeertaal C++ op bereik gebaseerde for-lus is een relatief recente functie die voor het eerst werd geïntroduceerd in C++11. Op bereik gebaseerde for-loops voer een lus over bereik uit. Ze werken met elke container die een iterator heeft, inclusief arrays, vectoren, kaarten, sets en zelfs door de gebruiker gedefinieerde typen die de noodzakelijke bewerkingen implementeren.

Syntaxis van bereikgebaseerd voor lus

A op bereik gebaseerde for-lus heeft een zeer eenvoudige syntaxis. Het bestaat uit de lusvariabele, de container of het bereik om doorheen te gaan, en een dubbele punt.







voor ( bereik_declaratie : bereik_expressie ) lus verklaring



bereik_verklaring: range-declaration is de declaratie van een variabele van hetzelfde type als de elementen van de range-component-expressie. Om automatisch het type componenten in een bereik_expressie , wordt het auto-trefwoord vaak gebruikt.



bereik_expressie: Elke uitdrukking die een lijst met elementen vertegenwoordigt, is een bereik_expressie .





lus verklaring: De hoofdtekst van een for-lus bestaat uit een of meer instructies die moeten worden herhaald tot het einde van de bereik_expressie.

Methoden om Range-Based for Loop uit te voeren

Er zijn drie methoden die hiervoor kunnen worden gebruikt op bereik gebaseerde for-lus .



Methode 1: Arrays gebruiken

Op bereik gebaseerde for-lus kan worden uitgevoerd met behulp van dergelijke arrays.

#include
namespace std; gebruiken;

int hoofd ( ) {
int numArray [ ] = { 6 , 7 , 8 , 9 , 10 } ;
voor ( int n : numArray ) {
cout << N << ' ' ;
}
opbrengst 0 ;
}

In de bovenstaande code is een integer-array met de naam numArray geïnitialiseerd. Vervolgens werden de elementen van numArray afgedrukt met behulp van een op bereik gebaseerde for-lus .

Uitgang

Methode 2: vectoren gebruiken

Op bereik gebaseerde for-lus kan worden uitgevoerd met behulp van vectoren zoals deze.

#include
#include
namespace std; gebruiken;
int hoofd ( )
{
int x;
vector < int > op = { 1 , 2 , 3 , 4 , 5 } ;
voor ( int x : v )
{
cout << X << ' ' ;
}
opbrengst 0 ;
}

In de bovenstaande code wordt een vector genoemd in werd geïnitialiseerd. Hier zijn de elementen van vector v afgedrukt met a op bereik gebaseerde for-lus.

Uitgang

Methode 3: Collectie binnen lus declareren

Op bereik gebaseerde for-lus kan ook binnen de lus worden gedeclareerd. Het werkt op dezelfde manier als een echte array of vector.

#include

namespace std; gebruiken;
int hoofd ( ) {
voor ( int n: { 5 , 10 , vijftien , twintig , 25 } ) {
cout << N << ' ' ;
}
opbrengst 0 ;
}

In de bovenstaande code wordt de verzameling binnen de lus zelf gedeclareerd en vervolgens afgedrukt.

Uitgang

Voordelen en nadelen van Range Based for Loop

Op bereik gebaseerde for-lus heeft meer voordelen dan conventioneel voor loops op verschillende manieren, vooral bij het werken met containers. Omdat de lusvariabele binnen de lus wordt gedefinieerd en het bereik expliciet wordt vermeld, wordt de code veel korter en gemakkelijker te begrijpen. Ze zijn ook veiliger, omdat u zich geen zorgen hoeft te maken over off-by-one-fouten of andere indexeringsfouten. Ze zijn beter aanpasbaar omdat ze elke container kunnen gebruiken, ongeacht het type of de grootte. De op bereik gebaseerde for-lus heeft verschillende voordelen, een daarvan is dat het onze code schoner en eenvoudiger te begrijpen maakt.

Op bereik gebaseerde for-loops hebben wel bepaalde beperkingen. Aangezien de lusvariabele een kopie is van of een verwijzing naar het element in plaats van het daadwerkelijke element, kan deze niet worden gebruikt om de elementen van de container te wijzigen. Aangezien het volledige bereik voortdurend wordt herhaald, kunnen we geen elementen overslaan of slechts een deel van de gegevens herhalen.

Conclusie

Op bereik gebaseerde for-lus is een krachtig en veelzijdig kenmerk van de programmeertaal C++. In vergelijking met conventionele for-loops bieden ze verbeterde veiligheid en flexibiliteit, samen met een duidelijke en leesbare benadering om door containers te itereren en code te verminderen. Op bereik gebaseerde for-lus is een must om te leren voor C++-programmeurs.