Na zemljevidu C++

Na Zemljevidu C



Knjižnica C++ STL nam ponuja razred zemljevidov. Zemljevidi veljajo za asociativne vsebnike, ki hranijo predmete v paru urejenih vrednosti ključev in preslikanih vrednosti. Nikoli ne moreta obstajati dve preslikani vrednosti z isto vrednostjo ključa. Razred zemljevida ponuja veliko funkcij, vendar bomo tukaj razpravljali o map.at() funkcijo. Preslikani element v vrednost ključa se posreduje kot parameter funkcije, na katerega se sklicuje uporaba map.at() funkcijo. Ko poskušamo priti do elementa, ki ni znotraj obsega vsebnika, se map.at() funkcija ovrednoti obseg vsebnika in vrže izjemo.

Sintaksa funkcije map.at().

Za implementacijo funkcije map.at() v C++ moramo slediti spodnji sintaksi.







Map_variable.at ( ključ / vrednostni par )



Uporabili smo objekt zemljevida, ki se imenuje 'Map_variable' z pri() funkcijo. Vrne element, na katerega se neposredno sklicuje in kaže na določeno ključno vrednost. Zemljevid podatkovnih ključev je večinoma odvisen od obsega zemljevida. Če ni, obstaja možnost, da bo v času izvajanja vrnjena izjema ali napaka, ki pomeni, da je vrednost zunaj definiranega obsega. Zdaj bomo to sintakso uporabili v kodah C++, da pokažemo, da deluje.



1. primer: uporaba funkcije map.at().

Program je implementiran za predstavitev funkcije map.at. Povezali smo pri() funkcijo z zemljevid() funkcija, ki sprejme nekaj vhodnih vrednosti in pokaže svojo funkcionalnost. Za to smo izpolnili razdelek glave programa z uvozom modula zemljevida z drugim obveznim modulom za c++. Nato smo poklicali glavni () funkcijo za deklaracijo zemljevida iz razreda zemljevida. Predmet zemljevida je označen kot 'MyMap'. Seznam zemljevidov ustvarimo tako, da podamo ključ zemljevida in vrednost.





Po tem smo priklicali map.at() funkcija, ki podani niz preslika v celo število. Nato smo natisnili rezultate iz map.at() funkcijo iz zanke for. Zanka for uporablja sklic na ključno besedo »samodejno«. Ključna beseda auto nakazuje, da bo inicializator samodejno odstranil tip spremenljivke iz tiste, ki je deklarirana. Izjava cout bo natisnila pare v vrstnem redu, ki je vrnjen iz map.at() funkcijo.

#include

#include

#include


int main ( )

std: :map < std::string,int > Moj zemljevid = {

{ “jabolko”, 0 } ,

{ 'grozdje' , 0 } ,

{ 'mango' , 0 } }

MyMap.at ( 'jabolko' ) = 5 ;

MyMap.at ( 'grozdje' ) = 10 ;

MyMap.at ( 'mango' ) = 6 ;

za ( avto & m: Moj zemljevid ) {

std::cout << m.prvi << ':' << m.sekunda << '\n' ; }

< močan > vrnitev 0 ;

}



Zdaj imamo rezultate zgornjega programa, ki izvaja map.at() funkcijo. Vsa podana cela števila, ki so v območju, so prikazana ob vsakem nizu.

Primer 2: Uporaba funkcije map.at() za izjemo out_of_range

Z zglednim programom smo razpravljali o uporabi map.at funkcijo v C++. Zdaj smo implementirali drugo map.at v programu. Toda tokrat bo vrnil vrednost, ki je predstavljena znotraj zemljevida, in tudi izjemo out_of_range, če ključ ni naveden. Ker moramo uporabiti map.at funkcijo, zato smo v glavo dodali modul zemljevida. Nato smo definirali glavno funkcijo, kjer je »praznina« posredovana kot parameter.

Znotraj glavne funkcije smo inicializirali konstruktor seznama tako, da smo ustvarili objekt zemljevida kot »m1«. Seznam zemljevidov ima različne nize ključev in vrednosti celih števil proti njim. Nato smo natisnili ključ 'i', tako da smo ga podali skozi map.at funkcijo. Uporabili smo blok try-catch. V poskusnem bloku smo predstavili ključ neobstoja v map.at funkcijo. Ker je ključ izven območja, bo poskusni blok vrgel napako.

#include

#include

uporaba imenskega prostora std;

int main ( praznina ) {


zemljevid < char, int > m1 = {

{ 'l' , 1 } ,

{ 'jaz' , dva } ,

{ 'n' , 3 } ,

{ 'noter' , 4 } ,

{ 'x' , 5 } ,

} ;



cout << 'vrednost ključa zemljevida m1['i'] = ' << m1.at ( 'jaz' ) << endl;



poskusi {

m1.at ( 'Y' ) ;

} ulov ( const izven obsega & in ) {

cerr << 'Napaka pri ' << e.kaj ( ) << endl;

}



vrnitev 0 ;

}

Iz izhodnega posnetka zaslona lahko vizualiziramo, da je map.at() funkcija vrne samo ključe, ki so prisotni na zemljevidu. Tipke izven obsega sprožijo napako, saj se napaka prikaže, ko posredujemo tipko 'y' v map.at funkcijo.

Primer 3: Uporaba funkcije map.at() za dostop do elementov

Do elementa je mogoče dostopati z uporabo podanega elementa števk iz funkcije map.at. Izvedimo ta program, da izpolnimo zgornjo izjavo. Najprej smo definirali modul zemljevida v razdelku glave, saj je potreben za dostop do map.at funkcijo. Nato imamo glavno funkcijo, kjer je razred zemljevida inicializiral objekt zemljevida kot »Zemljevid«. S tem objektom »Map« smo generirali ključe nizov in jim dodelili vrednost števke. Po tem smo poklicali map.at funkcijo s stavkom cout in posredoval tipko 'Example' kot vhod.

#include

#include

#include

uporaba imenskega prostora std;

int main ( )

{

zemljevid < niz, notr > Zemljevid;

Zemljevid [ 'moj' ] = 1 ;

Zemljevid [ 'c++' ] = dva ;

Zemljevid [ 'Zemljevid' ] = 3 ;

Zemljevid [ 'primer' ] = 4 ;

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

vrnitev 0 ;

}

Številčni element se vrne glede na podani ključ v map.at funkcijo. Rezultat daje vrednost '4', saj je ta številka dodeljena ključnemu elementu 'Primer' karte.

Primer 4: Uporaba funkcije map.at() za spreminjanje elementov

Oglejmo si preprost primer spreminjanja vrednosti, povezane s ključno vrednostjo. Seznam zemljevida smo ustvarili tako, da smo poklicali razred zemljevida in ustvarili objekt 'M1'. Vsakemu ključu zemljevida smo dodelili vrednost niza. Nato moramo uporabiti map.at funkcijo. V map.at smo uporabili podane ključe in tem ključem dodelili nove vrednosti niza. Zdaj bodo te vrednosti spremenjene s prejšnjo. S pomočjo zanke for smo ponovili vsak element iz zemljevida in ga prikazali kot izhod.

#include

#include

#include


uporaba imenskega prostora std;


int main ( )

{

zemljevid < int, niz > M1 = {

{ 10 , 'c++' } ,

{ dvajset , 'java' } ,

{ 30 , 'python' } ,

{ 40 , 'csharp' } ,

{ petdeset , 'ODPRTO' } } ;




M1.at ( dvajset ) = 'Tensorflow' ;

M1.at ( 30 ) = 'Linux' ;

M1.at ( petdeset ) = 'Scala' ;

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

za ( avto & x: M1 ) {

cout << x.prvi << ':' << x.drugo << '\n' ;

}


vrnitev 0 ;

}

Upoštevajte, da so vrednosti, pridobljene kot izhod, spremenile na novo dodeljene vrednosti niza v map.at funkcijo. Posodobljene vrednosti so prikazane na spodnjem posnetku.

Zaključek

Članek govori o funkciji map.at. Funkcionalnost funkcije map.at() smo zagotovili prek njene sintakse, primer pa je implementiran s prevajalnikom C++. Funkcija map.at() je zelo uporabna, saj omogoča dostopnost elementa in vrne jasno izjemo ali napako, ki opisuje situacijo, ki je nastala, ko je bila metoda klicana. Poleg tega lahko s funkcijo map.at dodelimo nove vrednosti ključu obstoja.