På kart C++

Pa Kart C



C++ STL-biblioteket gir oss en kartklasse. Kart betraktes som assosiative beholdere som beholder objekter i et par ordnede nøkkelverdier og kartlagte verdier. Det kan aldri være to kartlagte verdier med samme nøkkelverdi. Kartklassen gir mange funksjoner, men her vil vi diskutere map.at() funksjon. Det tilordnede elementet til nøkkelverdien sendes som funksjonens parameter som refereres til ved hjelp av map.at() funksjon. Når vi prøver å komme til et element som ikke er innenfor containerens rekkevidde, vil map.at() funksjonen evaluerer containerens rekkevidde og kaster et unntak.

Syntaks for map.at() funksjon

Vi må følge syntaksen nedenfor for å implementere map.at()-funksjonen i C++.







Map_variable.at ( nøkkel / verdipar )



Vi har brukt kartobjektet som heter 'Map_variable' med på() funksjon. Den returnerer elementet som er direkte referert og peker på den angitte nøkkelverdien. Datanøkkelkartet avhenger stort sett av kartets rekkevidde. Hvis den ikke er det, er det en mulighet for at et unntak eller feil vil bli returnert ved utførelsestidspunktet som betyr at verdien er utenfor det definerte området. Nå vil vi bruke denne syntaksen i C++-kodene for å vise at den fungerer.



Eksempel 1: Bruk av map.at()-funksjonen

Programmet er implementert for å demonstrere map.at-funksjonen. Vi har koblet sammen på() funksjon med kart() funksjon som tar noen inngangsverdier og viser funksjonaliteten. For dette har vi fylt programmets overskriftsseksjon ved å importere kartmodulen med en annen nødvendig modul for c++. Da har vi ringt til hoved() funksjon for karterklæringen fra kartklassen. Objektet på kartet er merket som 'Mitt kart'. Vi lager listen over kart ved å gi kartnøkkelen og verdien.





Etter dette påkalte vi map.at() funksjon som tilordner den angitte strengen til et heltall. Deretter skrev vi ut resultatene fra map.at() funksjon fra for-løkken. For-løkken bruker nøkkelordreferansen 'auto'. Auto-nøkkelordet indikerer at initialisereren automatisk vil fjerne variabelens type fra den som deklareres. Cout-erklæringen vil skrive ut parene i rekkefølgen som returneres fra map.at() funksjon.

#include

#inkluder

#inkluder


int main ( )

std: :kart < std::string,int > Mitt kart = {

{ 'eple', 0 } ,

{ 'druer' , 0 } ,

{ 'mango' , 0 } }

MyMap.at ( 'eple' ) = 5 ;

MyMap.at ( 'druer' ) = 10 ;

MyMap.at ( 'mango' ) = 6 ;

til ( auto & m: Mitt kart ) {

std::cout << m.først << ': ' << m.sekund << '\n' ; }

< sterk > komme tilbake 0 ;

}



Nå har vi resultatene fra programmet ovenfor som implementerer map.at() funksjon. Alle de spesifiserte heltallene som er innenfor området vises mot hver streng.

Eksempel 2: Bruk av map.at()-funksjonen for unntak fra_området

Vi har diskutert gjennom et eksempelprogram bruken av map.at funksjon i C++. Nå har vi implementert en annen map.at i programmet. Men denne gangen vil den returnere verdien som er presentert inne i kartet og også unntaket utenfor rekkevidde når nøkkelen ikke er spesifisert. Som vi må bruke map.at funksjon, så vi har lagt til kartmodulen i overskriften. Deretter har vi definert hovedfunksjonen der 'tomrommet' sendes som en parameter.

Inne i hovedfunksjonen har vi initialisert listekonstruktøren ved å lage kartobjektet som 'm1'. Kartlisten har forskjellige strenger med nøkler og heltallsverdiene mot dem. Deretter skrev vi ut nøkkelen 'i' ved å føre den gjennom map.at funksjon. Vi har tatt i bruk try-catch-blokken. I prøveblokken har vi presentert ikke-eksistensnøkkelen i map.at funksjon. Siden nøkkelen er utenfor området, vil prøveblokken gi feilen.

#include

#inkluder

bruker navneområde std;

int main ( tomrom ) {


kart < røye, int > m1 = {

{ 'l' , 1 } ,

{ 'Jeg' , to } ,

{ 'n' , 3 } ,

{ 'i' , 4 } ,

{ 'x' , 5 } ,

} ;



cout << 'kartnøkkelverdi m1['i'] = ' << m1.at ( 'Jeg' ) << endl;



prøve {

m1.at ( 'Y' ) ;

} å fange ( const out_of_range & og ) {

cerr << 'Feil ved' << e.hva ( ) << endl;

}



komme tilbake 0 ;

}

Vi kan visualisere fra utdataskjermbildet at map.at() funksjonen returnerer bare tastene som finnes på kartet. Nøklene utenfor rekkevidde gir feilen ettersom feilen vises når vi sendte nøkkelen 'y' i map.at funksjon.

Eksempel 3: Bruk av map.at()-funksjonen for å få tilgang til elementer

Et element kan nås ved å bruke det angitte elementet med sifre fra map.at-funksjonen. La oss implementere dette programmet for å oppnå uttalelsen ovenfor. Vi har definert kartmodulen først i overskriftsdelen ettersom den er nødvendig for å få tilgang til map.at funksjon. Deretter har vi hovedfunksjonen der kartklassen initialiserte kartobjektet som 'Kart'. Med dette 'Map'-objektet har vi generert nøklene til strenger og tildelt verdien av sifferet til dem. Etter det ringte vi map.at en funksjon med cout-setningen og ga 'Eksempel'-tasten som en inngang.

#include

#inkluder

#inkluder

bruker navneområde std;

int main ( )

{

kart < streng, int > Kart;

Kart [ 'Min' ] = 1 ;

Kart [ 'c++' ] = to ;

Kart [ 'Kart' ] = 3 ;

Kart [ 'Eksempel' ] = 4 ;

cout << Map.at ( 'Eksempel' ) ;

komme tilbake 0 ;

}

Sifferelementet returneres mot den angitte nøkkelen i map.at funksjon. Resultatet gir verdien '4' da dette sifferet er tilordnet nøkkelelementet 'Eksempel' på et kart.

Eksempel 4: Bruk av map.at()-funksjonen for å endre elementer

La oss vurdere et enkelt eksempel på å endre verdien knyttet til nøkkelverdien. Vi har laget listen over kartet ved å kalle kartklassen og lage objektet 'M1'. Vi har tildelt strengverdien mot hver nøkkel på kartet. Da må vi bruke map.at funksjon. I map.at funksjon, har vi brukt de angitte nøklene og tildelt de nye strengverdiene mot disse nøklene. Nå vil disse verdiene bli endret med den forrige. Ved hjelp av for loop har vi iterert hvert element fra kartet og vist det som en utgang.

#include

#inkluder

#inkluder


bruker navneområde std;


int main ( )

{

kart < int, streng > M1 = {

{ 10 , 'c++' } ,

{ tjue , 'java' } ,

{ 30 , 'pyton' } ,

{ 40 , 'csharp' } ,

{ femti , 'ÅPEN' } } ;




M1.at ( tjue ) = 'Tensorflow' ;

M1.at ( 30 ) = 'Linux' ;

M1.at ( femti ) = 'Scala' ;

cout << ' \n Elementer:' << endl;

til ( auto & x: M1 ) {

cout << x.først << ': ' << x.sekund << '\n' ;

}


komme tilbake 0 ;

}

Legg merke til at verdier oppnådd som utdata har endret de nylig tildelte strengverdiene i map.at funksjon. De oppdaterte verdiene vises i øyeblikksbildet nedenfor.

Konklusjon

Artikkelen handler om map.at-funksjonen. Vi har gitt funksjonaliteten til map.at()-funksjonen gjennom syntaksen, og eksemplet er implementert med C++-kompilatoren. Map.at()-funksjonen er svært nyttig ettersom den tillater elementtilgjengelighet og returnerer et klart unntak eller feil som beskriver situasjonen som oppsto når metoden kalles. Videre kan vi tildele nye verdier mot eksistensnøkkelen gjennom map.at-funksjonen.