Voor automatisch in C++

Voor Automatisch In C



C++ biedt het trefwoord “auto” dat aangeeft dat het type van een variabele automatisch wordt afgeleid uit de initialisatiefunctie wanneer deze voor het eerst wordt gedeclareerd. Bovendien onderzoeken de methoden waarvan het retourtype automatisch is, hun retourtype-expressie tijdens runtime. We kunnen het ook definiëren omdat het wordt gebruikt om automatisch het gegevenstype van de waarde te detecteren. Wanneer we dit trefwoord ‘auto’ gebruiken in de ‘for’-lus, hoeven we het gegevenstype niet bij elke iterator toe te voegen. Het trefwoord “auto” in de lus “for” instrueert de compiler om het type van een gedeclareerde variabele te bepalen met behulp van de initialisatie-expressie.

Voorbeeld 1:

De “iostream” is het eerste headerbestand hier waarin de functies van C++ worden gedeclareerd. Vervolgens voegen we het headerbestand “vector” toe, dat hier is opgenomen, zodat we met de vector kunnen werken en met vectoren kunnen werken. Dan is “std” de naamruimte die we hier invoegen, dus we hoeven deze “std” niet met alle functies afzonderlijk in deze code te plaatsen. Vervolgens wordt hier de “main()” aangeroepen. Daaronder creëren we een vector van het gegevenstype “int” met de naam “myNewData” en voegen er enkele gehele waarden in.

Hierna plaatsen we de ‘for’-lus en gebruiken we dit ‘auto’-trefwoord erin. Nu zal deze iterator het gegevenstype van de waarden hier detecteren. We krijgen de waarden van de vector “myNewData” en slaan deze op in de variabele “data” en geven ze hier ook weer terwijl we deze “data” toevoegen aan de “cout”.







Code1:



#include
#include
gebruik makend van naamruimte soa ;
int voornaamst ( ) {
vector < int > mijnNieuweData { elf , 22 , 33 , 44 , 55 , 66 } ;
voor ( auto gegevens : mijnNieuweData ) {
uit << gegevens << eindl ;
}
}

Uitvoer :
We hebben alle waarden van deze vector gezien die hier zijn afgedrukt. We drukken deze waarden af ​​door de 'for'-lus te gebruiken en het trefwoord 'auto' erin te plaatsen.







Voorbeeld 2:

Hier voegen we de “bits/stdc++.h” toe, omdat deze alle functiedeclaraties bevat. Vervolgens plaatsen we hier de naamruimte “std” en roepen vervolgens de “main()” aan. Hieronder initialiseren we een “set” van “string” en noemen deze “myString”. Vervolgens voegen we in de volgende regel de stringgegevens erin in. We voegen enkele fruitnamen in deze set in met behulp van de “insert()” -methode.

We gebruiken de ‘for’-lus eronder en plaatsen het trefwoord ‘auto’ erin. Hierna initialiseren we een iterator met de naam “my_it” met het trefwoord “auto” en wijzen hieraan “myString” toe, samen met de functie “begin()”.



Vervolgens plaatsen we een voorwaarde die “my_it” is, niet gelijk aan “myString.end()” en verhogen we de waarde van de iterator met behulp van “my_it++”. Hierna plaatsen we de ”*my_it” in de “cout”. Nu worden de fruitnamen afgedrukt in alfabetische volgorde, en het gegevenstype wordt automatisch gedetecteerd omdat we hier het trefwoord ‘auto’ hebben geplaatst.

Code2:

#include
gebruik makend van naamruimte soa ;
int voornaamst ( )
{
set < snaar > mijnString ;
mijnString. invoegen ( { 'Druiven' , 'Oranje' , 'Banaan' , 'Peer' , 'Appel' } ) ;
voor ( auto mijn_het = mijnString. beginnen ( ) ; mijn_het ! = mijnString. einde ( ) ; mijn_het ++ )
uit << * mijn_het << ' ' ;

opbrengst 0 ;
}

Uitgang:
Hier kunnen we zien dat de fruitnamen in alfabetische volgorde worden weergegeven. Alle gegevens worden hier weergegeven die we in de tekenreeksset hebben ingevoegd omdat we in de vorige code 'for' en 'auto' gebruikten.

Voorbeeld 3:

Omdat “bits/stdc++.h” al alle functiedeclaraties bevat, voegen we deze hier toe. Nadat we de naamruimte “std” hebben toegevoegd, roepen we vanaf deze locatie “main()” aan. De “set” van “int” die we hieronder hebben vastgesteld, wordt “myIntegers” genoemd. Vervolgens voegen we de gehele gegevens toe aan de regel die volgt. We gebruiken de methode “insert()” om een ​​paar gehele getallen aan deze lijst toe te voegen. Het trefwoord ‘auto’ wordt nu ingevoegd in de ‘for’-lus die daaronder wordt gebruikt.

Vervolgens gebruiken we het trefwoord “auto” om een ​​iterator met de naam “new_it” te initialiseren, waarbij we de functies “myIntegers” en “begin()” eraan toewijzen. Vervolgens stellen we een voorwaarde in die stelt dat “my_it” niet gelijk mag zijn aan “myIntegers.end()” en gebruiken we “new_it++” om de waarde van de iterator te verhogen. Vervolgens voegen we de “*new_it” in deze “cout” -sectie in. Het drukt de gehele getallen in oplopende volgorde af. Wanneer het trefwoord “auto” wordt ingevoegd, wordt automatisch het gegevenstype gedetecteerd.

Code 3:

#include
gebruik makend van naamruimte soa ;
int voornaamst ( )
{
set < int > mijnGehele getallen ;
mijnGehele getallen. invoegen ( { Vier vijf , 31 , 87 , 14 , 97 , eenentwintig , 55 } ) ;
voor ( auto nieuwe_it = mijnGehele getallen. beginnen ( ) ; nieuwe_it ! = mijnGehele getallen. einde ( ) ; nieuwe_it ++ )
uit << * nieuwe_it << ' ' ;

opbrengst 0 ;
}

Uitvoer :
De gehele getallen worden hier in oplopende volgorde weergegeven, zoals u hieronder kunt zien. Omdat we in de vorige code de termen 'for' en 'auto' gebruikten, worden alle gegevens die we in de gehele set hebben geplaatst hier weergegeven.

Voorbeeld 4:

De headerbestanden “iostream” en “vector” zijn inbegrepen omdat we hier met de vectoren werken. De naamruimte “std” wordt vervolgens toegevoegd en we noemen vervolgens de “main()”. Vervolgens initialiseren we een vector van het gegevenstype “int” met de naam “myVectorV1” en voegen we enkele waarden toe aan deze vector. Nu plaatsen we de “for”-lus en gebruiken we hier “auto” om het gegevenstype te detecteren. We openen de waarden van de vector en drukken ze vervolgens af door “valueOfVector” in de “cout” te plaatsen.

Hierna plaatsen we nog een “for” en de “auto” erin en initialiseren deze met “&& valueOfVector: myVectorV1”. Hier hebben we toegang via de referentie en drukken vervolgens alle waarden af ​​door “valueOfVector” in de “cout” te plaatsen. Nu hoeven we het gegevenstype voor beide lussen niet in te voegen, omdat we het trefwoord ‘auto’ in de lus gebruiken.

Code 4:

#include
#include
gebruik makend van naamruimte soa ;
int voornaamst ( ) {
vector < int > mijnVectorV1 = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ;
voor ( auto waardeVanVector : mijnVectorV1 )
uit << waardeVanVector << '' ;
uit << eindl ;
voor ( auto && waardeVanVector : mijnVectorV1 )
uit << waardeVanVector << '' ;
uit << eindl ;
opbrengst 0 ;
}

Uitgang:
Alle gegevens van de vector worden weergegeven. De getallen die op de eerste regel worden weergegeven, zijn de getallen waartoe we toegang hebben gekregen via waarden, en de getallen die op de tweede regel worden weergegeven, zijn de getallen die we hebben benaderd via verwijzing in de code.

Voorbeeld 5:

Nadat we de methode “main()” in deze code hebben aangeroepen, initialiseren we twee arrays: “myFirstArray” met de grootte “7” met het gegevenstype “int” en “mySecondArray” met de grootte “7” van de “double” data type. We voegen de waarden in beide arrays in. In de eerste array voegen we de “gehele” waarden in. In de tweede array voegen we de “dubbele” waarden toe. Hierna gebruiken we de “for” en voegen we de “auto” in deze lus in.

Hier gebruiken we een ‘range base for’-lus voor de ‘myFirstArray’. Vervolgens plaatsen we “myVar” in de “cout”. Daaronder plaatsen we opnieuw een lus en gebruiken we de “range base for”-lus. Deze lus is voor de “mySecondArray” en dan drukken we ook de waarden van die array af.

Code 5:

#include
gebruik makend van naamruimte soa ;
int voornaamst ( )
{
int mijnEersteArray [ 7 ] = { vijftien , 25 , 35 , Vier vijf , 55 , 65 , 75 } ;
dubbele mijnSecondArray [ 7 ] = { 2,64 , 6.45 , 8.5 , 2.5 , 4.5 , 6.7 , 8.9 } ;
voor ( const auto & mijnVar : mijnEersteArray )
{
uit << mijnVar << ' ' ;
}
uit << eindl ;
voor ( const auto & mijnVar : mijnSecondArray )
{
uit << mijnVar << ' ' ;
}
opbrengst 0 ;
}

Uitgang:
Alle gegevens van beide vectoren worden hier in deze uitkomst weergegeven.

Conclusie

Het “voor auto”-concept wordt in dit artikel grondig bestudeerd. We hebben uitgelegd dat “auto” het gegevenstype detecteert zonder het te vermelden. We hebben in dit artikel meerdere voorbeelden onderzocht en hier ook de code-uitleg gegeven. In dit artikel hebben we de werking van dit ‘voor auto’-concept uitgebreid uitgelegd.