På Map C++

Pa Map C



C++ STL-biblioteket giver os en kortklasse. Kort betragtes som associative beholdere, der bevarer objekter i et par ordnede nøgleværdier og tilknyttede værdier. Der kan aldrig være to tilknyttede værdier med samme nøgleværdi. Kortklassen giver mange funktioner, men her vil vi diskutere map.at() fungere. Det tilknyttede element til nøgleværdien videregives som funktionens parameter, der refereres til ved hjælp af map.at() fungere. Når vi forsøger at komme til et element, der ikke er inden for containerens rækkevidde, vil map.at() funktionen evaluerer containerens rækkevidde og kaster en undtagelse.

Syntaks for map.at() Funktion

Vi skal følge syntaksen nedenfor for at implementere funktionen map.at() i C++.







Map_variable.at ( nøgle / værdipar )



Vi har brugt kortobjektet, som hedder 'Map_variable' med på() fungere. Det returnerer det element, der refereres direkte til, og peger på den angivne nøgleværdi. Datanøglekortet afhænger for det meste af kortets rækkevidde. Hvis den ikke er det, er der en mulighed for, at en undtagelse eller fejl vil blive returneret på udførelsestidspunktet, hvilket betyder, at værdien er uden for det definerede interval. Nu vil vi bruge denne syntaks i C++-koderne for at vise, at den virker.



Eksempel 1: Brug af map.at()-funktionen

Programmet er implementeret for at demonstrere map.at-funktionen. Vi har forbundet på() funktion med kort() funktion, der tager nogle inputværdier og viser dens funktionalitet. Til dette har vi udfyldt programmets overskriftssektion ved at importere kortmodulet med et andet påkrævet modul til c++. Så har vi ringet til hoved() funktion for kortdeklarationen fra kortklassen. Objektet på kortet er mærket som 'Mit kort'. Vi opretter listen over kort ved at give kortets nøgle og værdi.





Efter dette påberåbte vi os map.at() funktion, som mapper den angivne streng til et heltal. Derefter udskrev vi resultaterne fra map.at() funktion fra for-løkken. For-løkken bruger søgeordsreferencen 'auto'. Nøgleordet auto angiver, at initialiseringsprogrammet automatisk fjerner variablens type fra den, der erklæres. Cout-erklæringen vil udskrive parrene i den rækkefølge, der returneres fra map.at() fungere.

#include

#inkluder

#inkluder


int main ( )

std: :kort < std::streng,int > Mit kort = {

{ 'æble', 0 } ,

{ 'druer' , 0 } ,

{ 'mango' , 0 } }

MyMap.at ( 'æble' ) = 5 ;

MyMap.at ( 'druer' ) = 10 ;

MyMap.at ( 'mango' ) = 6 ;

til ( auto & m: Mit kort ) {

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

< stærk > Vend tilbage 0 ;

}



Nu har vi resultaterne fra ovenstående program, der implementerer map.at() fungere. Alle de angivne heltal, der er inden for rækkevidde, vises mod hver streng.

Eksempel 2: Brug af map.at()-funktionen til undtagelse fra_område

Vi har gennem et eksempelprogram diskuteret brugen af map.at funktion i C++. Nu har vi implementeret en anden map.at i programmet. Men denne gang vil den returnere den værdi, der vises inde i kortet, og også undtagelsen uden for_område, når nøglen ikke er angivet. Da vi er nødt til at bruge map.at funktion, så vi har tilføjet kortmodulet i overskriften. Derefter har vi defineret hovedfunktionen, hvor 'tomrummet' sendes som en parameter.

Inde i hovedfunktionen har vi initialiseret listekonstruktøren ved at oprette kortobjektet som 'm1'. Kortlisten har forskellige strenge af nøgler og heltalsværdierne imod dem. Derefter udskrev vi nøglen 'i' ved at føre den gennem map.at fungere. Vi har brugt try-catch-blokken. I prøveblokken har vi præsenteret ikke-eksistensnøglen i map.at fungere. Da nøglen er uden for rækkevidden, vil prøveblokken kaste fejlen.

#include

#inkluder

bruger navneområde std;

int main ( ugyldig ) {


kort < char, int > m1 = {

{ 'l' , 1 } ,

{ 'jeg' , to } ,

{ 'n' , 3 } ,

{ 'i' , 4 } ,

{ 'x' , 5 } ,

} ;



cout << 'kortnøgleværdi m1['i'] = ' << m1.at ( 'jeg' ) << endl;



prøve {

m1.at ( 'Y' ) ;

} fangst ( const out_of_range & og ) {

cerr << 'Fejl ved' << e. hvad ( ) << endl;

}



Vend tilbage 0 ;

}

Vi kan visualisere fra output-skærmbilledet, at map.at() funktionen returnerer kun de nøgler, der findes på kortet. Tasterne uden for rækkevidde kaster fejlen, da fejlen vises, når vi passerede tasten 'y' i map.at fungere.

Eksempel 3: Brug af map.at()-funktionen til at få adgang til elementer

Et element kan tilgås ved hjælp af det angivne element af cifre fra map.at-funktionen. Lad os implementere dette program for at opnå ovenstående erklæring. Vi har defineret kortmodulet først i overskriftssektionen, da det er nødvendigt for at få adgang til map.at fungere. Derefter har vi hovedfunktionen, hvor kortklassen initialiserede kortobjektet som 'Kort'. Med dette 'Map'-objekt har vi genereret nøglerne til strenge og tildelt dem værdien af ​​cifferet. Derefter ringede vi til map.at en funktion med cout-sætningen og bestod 'Eksempel'-tasten som input.

#include

#inkluder

#inkluder

bruger navneområde std;

int main ( )

{

kort < streng, int > Kort;

Kort [ 'Min' ] = 1 ;

Kort [ 'c++' ] = to ;

Kort [ 'Kort' ] = 3 ;

Kort [ 'Eksempel' ] = 4 ;

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

Vend tilbage 0 ;

}

Cifferelementet returneres mod den angivne nøgle i map.at fungere. Resultatet giver værdien '4', da dette ciffer er tildelt nøgleelementet 'Eksempel' på et kort.

Eksempel 4: Brug af map.at()-funktionen til at ændre elementer

Lad os overveje et simpelt eksempel på at ændre værdien forbundet med nøgleværdien. Vi har lavet listen over kortet ved at kalde kortklassen og oprette objektet 'M1'. Vi har tildelt strengværdien for hver nøgle på kortet. Så skal vi bruge map.at fungere. I den map.at funktion, har vi brugt de angivne nøgler og tildelt de nye strengværdier mod disse nøgler. Nu vil disse værdier blive ændret med den forrige. Ved hjælp af for loop har vi itereret hvert element fra kortet og vist det som et output.

#include

#inkluder

#inkluder


bruger navneområde std;


int main ( )

{

kort < int, streng > M1 = {

{ 10 , 'c++' } ,

{ tyve , 'java' } ,

{ 30 , 'python' } ,

{ 40 , 'csharp' } ,

{ halvtreds , 'ÅBEN' } } ;




M1.at ( tyve ) = 'Tensorflow' ;

M1.at ( 30 ) = 'Linux' ;

M1.at ( halvtreds ) = 'Scala' ;

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

til ( auto & x: M1 ) {

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

}


Vend tilbage 0 ;

}

Bemærk, at værdier opnået som output har ændret de nyligt tildelte strengværdier i map.at fungere. De opdaterede værdier er vist på snapshot nedenfor.

Konklusion

Artiklen handler om map.at-funktionen. Vi har leveret funktionaliteten af ​​funktionen map.at() gennem dens syntaks, og eksemplet er implementeret med C++ compiler. Map.at()-funktionen er yderst nyttig, da den giver mulighed for elementtilgængelighed og returnerer en klar undtagelse eller fejl, der beskriver den situation, der opstod, da metoden kaldes. Desuden kan vi tildele nye værdier mod eksistensnøglen gennem map.at-funktionen.