Automaatseks jaoks C++

Automaatseks Jaoks C



C++ pakub märksõna 'auto', mis näitab, et muutuja tüüp tuletatakse automaatselt selle initsialisaatorist, kui see esmakordselt deklareeritakse. Lisaks uurivad meetodid, mille tagastustüüp on automaatne, käitusajal oma tagastustüübi avaldist. Samuti saame selle määratleda, kuna seda kasutatakse väärtuse andmetüübi automaatseks tuvastamiseks. Kui kasutame seda 'auto' märksõna tsüklis 'for', ei pea me iga iteraatoriga andmetüüpi lisama. Märksõna 'auto' silmuses 'for' juhendab kompilaatorit määrama deklareeritud muutuja tüübi, kasutades selle initsialiseerimisavaldist.

Näide 1:

'iostream' on siin esimene päisefail, kus deklareeritakse C++ funktsioonid. Seejärel lisame siia lisatud 'vektori' päisefaili, et saaksime töötada vektori ja funktsiooniga vektoritega töötamiseks. Siis on 'std' nimeruum, mille me siia sisestame, nii et me ei pea seda 'std' kõigi funktsioonidega sellesse koodi eraldi panema. Seejärel kutsutakse siin esile 'main()'. Selle alla loome andmetüübi 'int' vektori nimega 'myNewData' ja sisestame sellesse mõned täisarvulised väärtused.

Pärast seda asetame tsükli 'for' ja kasutame selle sees seda 'auto' märksõna. Nüüd tuvastab see iteraator siin olevate väärtuste andmetüübi. Saame vektori 'myNewData' väärtused ja salvestame need muutujasse 'data' ning kuvame need ka siin, kui lisame need 'andmed' lahtrisse 'cout'.







Kood 1:



#include
#include
kasutades nimeruum std ;
int peamine ( ) {
vektor < int > myNewData { üksteist , 22 , 33 , 44 , 55 , 66 } ;
jaoks ( auto andmeid : myNewData ) {
cout << andmeid << endl ;
}
}

Väljund :
Oleme näinud kõiki selle vektori väärtusi, mis on siin trükitud. Trükime need väärtused, kasutades tsüklit 'for' ja asetades selle sisse märksõna 'auto'.







Näide 2:

Siin lisame 'bits/stdc++.h', kuna see sisaldab kõiki funktsioonide deklaratsioone. Seejärel paneme siia nimeruumi 'std' ja seejärel kutsume esile 'main()'. Selle all initsialiseerime 'stringi' komplekti ja nimetame selle kui 'myString'. Seejärel sisestame järgmisele reale stringi andmed. Lisame sellesse komplekti mõned puuviljanimed, kasutades meetodit 'insert()'.

Kasutame selle all tsüklit 'for' ja asetame selle sisse märksõna 'auto'. Pärast seda initsialiseerime iteraatori nimega 'my_it' märksõnaga 'auto' ja määrame sellele 'myString' koos funktsiooniga 'begin()'.



Seejärel asetame tingimuse, mis on 'my_it', mis ei ole võrdne 'myString.end()' ja suurendame iteraatori väärtust, kasutades 'my_it++'. Pärast seda asetame '*my_it' lahtrisse 'cout'. Nüüd prindib see puuviljanimed vastavalt tähestikulisele järjestusele ja andmetüüp tuvastatakse automaatselt, kui me siia märksõna 'auto' paigutasime.

Kood 2:

#include
kasutades nimeruum std ;
int peamine ( )
{
seatud < string > myString ;
myString. sisestada ( { 'Viinamarjad' , 'oranž' , 'banaan' , 'Pirn' , 'Õun' } ) ;
jaoks ( auto minu_see = myString. alustada ( ) ; minu_see ! = myString. lõpp ( ) ; minu_see ++ )
cout << * minu_see << ' ' ;

tagasi 0 ;
}

Väljund:
Siin võime märgata, et puuviljade nimed kuvatakse tähestikulises järjestuses. Siin renderdatakse kõik andmed, mille sisestasime stringikomplekti, kuna kasutasime eelmises koodis 'for' ja 'auto'.

Näide 3:

Kuna “bits/stdc++.h”-l on juba kõik funktsioonideklaratsioonid, lisame selle siia. Pärast nimeruumi 'std' lisamist kutsume sellest asukohast välja 'main()'. 'Int' komplekti, mille me edaspidi koostasime, nimetatakse 'minutäisarvudeks'. Seejärel lisame järgnevale reale täisarvulised andmed. Sellesse loendisse mõne täisarvu lisamiseks kasutame meetodit 'insert()'. Märksõna 'auto' on nüüd sisestatud selle all kasutatavasse tsüklisse 'for'.

Järgmisena kasutame märksõna 'auto' iteraatori initsialiseerimiseks nimega 'new_it', määrates sellele funktsioonid 'myIntegers' ja 'begin()'. Järgmisena seadistame tingimuse, mis ütleb, et 'my_it' ei tohi olla võrdne väärtusega 'myIntegers.end()' ja kasutame iteraatori väärtuse suurendamiseks 'new_it++'. Järgmisena sisestame sellesse jaotisesse 'cout' '*new_it'. See prindib täisarvud kasvavas järjekorras. Märksõna 'auto' sisestamisel tuvastab see automaatselt andmetüübi.

Kood 3:

#include
kasutades nimeruum std ;
int peamine ( )
{
seatud < int > minu täisarvud ;
minu täisarvud. sisestada ( { Neli, viis , 31 , 87 , 14 , 97 , kakskümmend üks , 55 } ) ;
jaoks ( auto new_it = minu täisarvud. alustada ( ) ; new_it ! = minu täisarvud. lõpp ( ) ; new_it ++ )
cout << * new_it << ' ' ;

tagasi 0 ;
}

Väljund :
Täisarvud on siin näidatud kasvavas järjekorras, nagu on näha allpool. Kuna me kasutasime eelmises koodis termineid 'for' ja 'auto', renderdatakse siin kõik andmed, mille panime täisarvude hulka.

Näide 4:

Päisefailid 'iostream' ja 'vektor' on kaasatud, kui me siin vektoritega töötame. Seejärel lisatakse nimeruum 'std' ja kutsume välja 'main()'. Seejärel initsialiseerime andmetüübi 'int' vektori nimega 'myVectorV1' ja lisame sellele vektorile mõned väärtused. Nüüd asetame andmetüübi tuvastamiseks tsükli 'for' ja kasutame siin 'auto'. Juurdepääseme vektori väärtuste järgi ja seejärel prindime need välja, asetades lahtrisse 'valueOfVector'.

Pärast seda asetame selle sisse teise “for” ja “auto” ning lähtestame selle väärtusega “&& valueOfVector : myVectorV1”. Siia pääseme juurde viite abil ja seejärel prindime kõik väärtused, pannes lahtrisse „cout” „valueOfVector”. Nüüd ei pea me mõlema ahela jaoks andmetüüpi sisestama, kuna kasutame tsükli sees märksõna 'auto'.

Kood 4:

#include
#include
kasutades nimeruum std ;
int peamine ( ) {
vektor < int > minuVektorV1 = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ;
jaoks ( auto väärtusVektor : minuVektorV1 )
cout << väärtusVektor << '' ;
cout << endl ;
jaoks ( auto && väärtusVektor : minuVektorV1 )
cout << väärtusVektor << '' ;
cout << endl ;
tagasi 0 ;
}

Väljund:
Kuvatakse kõik vektori andmed. Esimesel real kuvatakse need numbrid, millele pääsesime juurde väärtuste kaudu, ja teisel real kuvatud numbrid on need, millele pääsesime koodis viitega juurde.

Näide 5:

Pärast selles koodis meetodi main() väljakutsumist initsialiseerime kaks massiivi, mis on 'myFirstArray' suurusega '7' andmetüübiga 'int' ja 'mySecondArray', mille suurus on 'double' '7'. andmetüüp. Sisestame väärtused mõlemasse massiivi. Esimesse massiivi sisestame 'täisarvu' väärtused. Teises massiivis lisame 'topelt' väärtused. Pärast seda kasutame 'for' ja sisestame sellesse ahelasse 'auto'.

Siin kasutame 'myFirstArray' jaoks tsüklit 'vahemiku alus'. Seejärel asetame lahtrisse 'cout' 'myVar'. Selle alla asetame uuesti ahela ja kasutame tsüklit „vahemiku alus”. See tsükkel on mõeldud 'mySecondArray' jaoks ja seejärel prindime ka selle massiivi väärtused.

Kood 5:

#include
kasutades nimeruum std ;
int peamine ( )
{
int myFirstArray [ 7 ] = { viisteist , 25 , 35 , Neli, viis , 55 , 65 , 75 } ;
kahekordne mySecondArray [ 7 ] = { 2.64 , 6.45 , 8.5 , 2.5 , 4.5 , 6.7 , 8.9 } ;
jaoks ( konst auto & minuVar : myFirstArray )
{
cout << minuVar << ' ' ;
}
cout << endl ;
jaoks ( konst auto & minuVar : mySecondArray )
{
cout << minuVar << ' ' ;
}
tagasi 0 ;
}

Väljund:
Selles tulemuses kuvatakse siin mõlema vektori kõik andmed.

Järeldus

Selles artiklis uuritakse põhjalikult mõistet 'auto jaoks'. Selgitasime, et 'automaatne' tuvastab andmetüübi ilma seda mainimata. Uurisime selles artiklis mitmeid näiteid ja esitasime siin ka koodi selgituse. Selgitasime selles artiklis põhjalikult selle 'auto' kontseptsiooni toimimist.