Žemėlapyje C++

Zemelapyje C



C++ STL biblioteka suteikia mums žemėlapio klasę. Žemėlapiai laikomi asociatyviais konteineriais, kuriuose objektai išsaugomi išdėstytų raktinių reikšmių ir susietų reikšmių poroje. Niekada negali būti dviejų susietų reikšmių su ta pačia rakto verte. Žemėlapio klasė suteikia daug funkcijų, tačiau čia mes aptarsime map.at() funkcija. Su rakto reikšme susietas elementas perduodamas kaip funkcijos parametras, kuris nurodomas naudojant map.at() funkcija. Kai bandome pasiekti elementą, kuris nėra konteinerio diapazone, map.at() funkcija įvertina konteinerio diapazoną ir padaro išimtį.

Funkcijos map.at() sintaksė

Turime laikytis toliau pateiktos sintaksės, kad įgyvendintume funkciją map.at() C++.







Map_variable.at ( Raktas / verčių pora )



Mes panaudojome žemėlapio objektą, pavadintą „Map_variable“ su adresu () funkcija. Jis grąžina elementą, kuris yra tiesiogiai nurodytas, ir nurodo nurodytą rakto reikšmę. Duomenų rakto žemėlapis daugiausia priklauso nuo žemėlapio diapazono. Jei ne, gali būti, kad vykdymo metu bus grąžinta išimtis arba klaida, kuri reiškia, kad reikšmė yra už apibrėžto diapazono ribų. Dabar mes naudosime šią sintaksę C++ koduose, kad parodytume, jog ji veikia.



1 pavyzdys: funkcijos map.at() naudojimas

Programa įgyvendinama siekiant parodyti map.at funkciją. Mes susiejome adresu () funkcija su žemėlapis () funkcija, kuri paima kai kurias įvesties reikšmes ir parodo jos funkcionalumą. Tam mes užpildėme programos antraštės skyrių, importuodami žemėlapio modulį su kitu reikalingu c++ moduliu. Tada mes paskambinome į pagrindinis () funkcija žemėlapio deklaracijai iš žemėlapio klasės. Žemėlapio objektas pažymėtas kaip „Mano žemėlapis“. Žemėlapių sąrašą sudarome pateikdami žemėlapio raktą ir reikšmę.





Po to mes kreipėmės į map.at() funkcija, kuri nurodytą eilutę susieja su sveikuoju skaičiumi. Tada išspausdinome rezultatus iš map.at() funkcija iš for ciklo. For cikle naudojama „auto“ raktinio žodžio nuoroda. Automatinis raktinis žodis rodo, kad iniciatorius automatiškai pašalins kintamojo tipą iš deklaruojamo. Cout teiginys išspausdins poras tokia tvarka, kokia bus grąžinta iš map.at() funkcija.

#include

#include

#įtraukti <žemėlapį>


tarp pagrindinis ( )

std: :map < std::string,int > Mano žemėlapis = {

{ 'obuoliai', 0 } ,

{ 'vynuogės' , 0 } ,

{ 'mangai' , 0 } }

MyMap.at ( 'obuolys' ) = 5 ;

MyMap.at ( 'vynuogės' ) = 10 ;

MyMap.at ( 'mangai' ) = 6 ;

dėl ( automatinis & m: Mano žemėlapis ) {

std::cout << m.pirma << ':' << m.sekundę << '\n' ; }

< stiprus > grąžinti 0 ;

}



Dabar turime pirmiau pateiktos programos, kuri įgyvendina, rezultatus map.at() funkcija. Visi nurodyti sveikieji skaičiai, esantys diapazone, rodomi kiekvienoje eilutėje.

2 pavyzdys: funkcijos map.at() naudojimas, skirtas out_of_range Exception

Per pavyzdinę programą aptarėme, kaip naudoti map.at funkcija C++. Dabar įgyvendinome kitą map.at programoje. Tačiau šį kartą jis grąžins reikšmę, kuri pateikiama žemėlapyje, ir išimtį out_of_range, kai raktas nenurodytas. Kadangi turime pasinaudoti map.at funkcija, todėl antraštėje įtraukėme žemėlapio modulį. Tada mes apibrėžėme pagrindinę funkciją, kur „tuštuma“ perduodama kaip parametras.

Pagrindinės funkcijos viduje inicijavome sąrašo konstruktorių, sukurdami žemėlapio objektą kaip „m1“. Žemėlapių sąraše yra skirtingos raktų eilutės ir jų sveikųjų skaičių reikšmės. Tada išspausdinome raktą „i“, perleisdami jį per map.at funkcija. Mes panaudojome try-catch bloką. Bandymo bloke mes pateikėme neegzistavimo raktą map.at funkcija. Kadangi raktas yra už diapazono, bandymo blokas išmes klaidą.

#include

#įtraukti <žemėlapį>

naudojant vardų erdvę std;

tarp pagrindinis ( tuštuma ) {


žemėlapis < char, tarpt > m1 = {

{ 'aš' , 1 } ,

{ 'aš' , du } ,

{ 'n' , 3 } ,

{ 'į' , 4 } ,

{ 'x' , 5 } ,

} ;



cout << 'žemėlapio rakto vertė m1['i'] = ' << m1.at ( 'aš' ) << endl;



bandyti {

m1.at ( 'Y' ) ;

} sugauti ( const out_of_range & ir ) {

cerr << 'Klaida ties' << e.kas ( ) << endl;

}



grąžinti 0 ;

}

Iš išvesties ekrano kopijos galime įsivaizduoti, kad map.at() funkcija grąžina tik tuos klavišus, kurie yra žemėlapyje. Už diapazono ribų esantys klavišai pateikia klaidą, nes klaida rodoma, kai perdavėme raktą „y“. map.at funkcija.

3 pavyzdys: funkcijos map.at() naudojimas elementams pasiekti

Elementą galima pasiekti naudojant nurodytą skaitmenų elementą iš funkcijos map.at. Įdiegkime šią programą, kad įvykdytume aukščiau pateiktą teiginį. Pirmiausia apibrėžėme žemėlapio modulį antraštės skiltyje, nes jis reikalingas norint pasiekti map.at funkcija. Tada turime pagrindinę funkciją, kai žemėlapio klasė inicijavo žemėlapio objektą kaip „Žemėlapis“. Su šiuo objektu „Žemėlapis“ sugeneravome eilučių raktus ir priskyrėme jiems skaitmens reikšmę. Po to paskambinome į map.at funkcija su cout teiginiu ir kaip įvestį perdavė klavišą „Pavyzdys“.

#include

#įtraukti <žemėlapį>

#include

naudojant vardų erdvę std;

tarp pagrindinis ( )

{

žemėlapis < styga, tarpt > Žemėlapis;

Žemėlapis [ 'Mano' ] = 1 ;

Žemėlapis [ 'c++' ] = du ;

Žemėlapis [ 'Žemėlapis' ] = 3 ;

Žemėlapis [ 'Pavyzdys' ] = 4 ;

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

grąžinti 0 ;

}

Skaitmeninis elementas grąžinamas pagal nurodytą raktą map.at funkcija. Rezultatas suteikia reikšmę „4“, nes šis skaitmuo priskiriamas pagrindiniam žemėlapio elementui „Pavyzdys“.

4 pavyzdys: funkcijos map.at() naudojimas elementams keisti

Panagrinėkime paprastą su rakto reikšme susietos vertės modifikavimo pavyzdį. Žemėlapio sąrašą sukūrėme iškvietę žemėlapio klasę ir sukūrę objektą „M1“. Kiekvienam žemėlapio klavišui priskyrėme eilutės reikšmę. Tada turime panaudoti map.at funkcija. Viduje map.at funkciją, mes panaudojome nurodytus klavišus ir priskyrėme naujas eilutės reikšmes tiems klavišams. Dabar šios reikšmės bus pakeistos su ankstesne. Naudodami for kilpą, mes pakartojome kiekvieną elementą iš žemėlapio ir parodėme jį kaip išvestį.

#include

#include

#įtraukti <žemėlapį>


naudojant vardų erdvę std;


tarp pagrindinis ( )

{

žemėlapis < int,string > M1 = {

{ 10 , 'c++' } ,

{ dvidešimt , 'java' } ,

{ 30 , 'python' } ,

{ 40 , 'sharp' } ,

{ penkiasdešimt , 'ATVIRAS' } } ;




M1.at ( dvidešimt ) = 'Tensorflow' ;

M1.at ( 30 ) = 'Linux' ;

M1.at ( penkiasdešimt ) = 'Scala' ;

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

dėl ( automatinis & x: M1 ) {

cout << x.pirma << ':' << x.sekundė << '\n' ;

}


grąžinti 0 ;

}

Atkreipkite dėmesį, kad reikšmės, gautos kaip išvestis, pakeitė naujai priskirtas eilutės reikšmes map.at funkcija. Atnaujintos reikšmės rodomos toliau pateiktoje momentinėje nuotraukoje.

Išvada

Straipsnis yra apie map.at funkciją. Mes pateikėme funkcijos map.at() funkcionalumą per jos sintaksę, o pavyzdys įgyvendintas naudojant C++ kompiliatorių. Funkcija map.at() yra labai naudinga, nes suteikia galimybę pasiekti elementą ir pateikia aiškią išimtį arba klaidą, apibūdinančią situaciją, susidariusią iškviečiant metodą. Be to, per funkciją map.at galime priskirti naujas reikšmes egzistavimo raktui.