C++ STL -kirjasto tarjoaa meille karttaluokan. Karttoja pidetään assosiatiivisina säilöinä, jotka säilyttävät objektit järjestetyissä avainarvoissa ja kartoitetuissa arvoissa. Ei voi koskaan olla kahta kartoitettua arvoa samalla avainarvolla. Karttaluokka tarjoaa monia toimintoja, mutta tässä keskustellaan map.at() toiminto. Avainarvoon yhdistetty elementti välitetään funktion parametrina, johon viitataan käyttämällä map.at() toiminto. Kun yritämme päästä elementtiin, joka ei ole säilön alueella, map.at() toiminto arvioi säilön alueen ja tekee poikkeuksen.
map.at()-funktion syntaksi
Meidän on noudatettava alla olevaa syntaksia toteuttaaksemme map.at()-funktion C++:ssa.
Map_variable.at ( avain / arvopari )
Olemme käyttäneet karttaobjektia, jonka nimi on 'Map_variable' kanssa at() toiminto. Se palauttaa elementin, johon viitataan suoraan, ja osoittaa määritettyyn avainarvoon. Tietoavainkartta riippuu enimmäkseen kartan kantamasta. Jos näin ei ole, on mahdollista, että suoritusaikana palautetaan poikkeus tai virhe, joka tarkoittaa, että arvo on määritellyn alueen ulkopuolella. Nyt käytämme tätä syntaksia C++-koodeissa osoittaaksemme, että se toimii.
Esimerkki 1: Map.at()-funktion käyttö
Ohjelma on toteutettu esittelemään map.at-toimintoa. Olemme linkittäneet at() toiminnon kanssa kartta() toiminto, joka ottaa joitakin syötearvoja ja näyttää sen toiminnallisuuden. Tätä varten olemme täyttäneet ohjelman otsikkoosion tuomalla karttamoduulin toisella vaaditulla c++-moduulilla. Sitten olemme soittaneet pää() toiminto karttaluokkien karttailmoitukselle. Kartan kohde on merkitty nimellä 'MyMap'. Luomme karttaluettelon antamalla karttaavaimen ja arvon.
Tämän jälkeen pyysimme map.at() funktio, joka kuvaa määritetyn merkkijonon kokonaisluvuksi. Sitten tulostimme tulokset map.at() funktio for-silmukasta. For-silmukka käyttää 'auto'-avainsanaviittausta. Automaattinen avainsana osoittaa, että alustus poistaa automaattisesti muuttujan tyypin määritellystä. Cout-lauseke tulostaa parit siinä järjestyksessä, joka palautetaan map.at() toiminto.
#include#sisällytä
#sisällytä
int main ( )
std: :map < std::string,int > Oma kartta = {
{ 'omena', 0 } ,
{ 'rypäleet' , 0 } ,
{ 'mangot' , 0 } }
MyMap.at ( 'omena' ) = 5 ;
MyMap.at ( 'rypäleet' ) = 10 ;
MyMap.at ( 'mangot' ) = 6 ;
varten ( auto & m: Oma kartta ) {
std::cout << m.first << ':' << m.sekunti << '\n' ; }
< vahva > palata 0 ;
}
Nyt meillä on tulokset yllä olevasta ohjelmasta, joka toteuttaa map.at() toiminto. Kaikki määritetyt kokonaisluvut, jotka ovat alueella, näytetään jokaisen merkkijonon kohdalla.
Esimerkki 2: Map.at()-funktion käyttäminen poikkeuksen_of_alueelle
Olemme keskustelleet esimerkkiohjelman avulla map.at toiminto C++:ssa. Nyt olemme toteuttaneet toisen map.at ohjelmassa. Mutta tällä kertaa se palauttaa kartan sisällä esitetyn arvon ja myös poikkeuksen out_of_range, kun avainta ei ole määritetty. Koska meidän on hyödynnettävä map.at -toiminto, joten olemme lisänneet karttamoduulin otsikkoon. Sitten olemme määrittäneet pääfunktion, jossa 'tyhjä' välitetään parametrina.
Pääfunktion sisällä olemme alustaneet listakonstruktorin luomalla karttaobjektiksi 'm1'. Karttaluettelossa on erilaisia avainmerkkijonoja ja kokonaislukuarvoja niitä vastaan. Sitten tulostimme avaimen 'i' viemällä sen läpi map.at toiminto. Olemme käyttäneet try-catch -lohkoa. Try-lohkossa olemme esittäneet olemattomuusavaimen map.at toiminto. Koska avain on alueen ulkopuolella, try-lohko heittää virheen.
#include#sisällytä
käyttäen nimiavaruutta std;
int main ( mitätön ) {
kartta < char, int > m1 = {
{ 'min' , 1 } ,
{ 'minä' , kaksi } ,
{ 'n' , 3 } ,
{ 'sisään' , 4 } ,
{ 'x' , 5 } ,
} ;
cout << 'karttaavaimen arvo m1['i'] = ' << m1.at ( 'minä' ) << endl;
yrittää {
m1.at ( 'Y' ) ;
} ottaa kiinni ( const out_of_range & ja ) {
cerr << 'Virhe osoitteessa' << e.mitä ( ) << endl;
}
palata 0 ;
}
Voimme visualisoida ulostulon kuvakaappauksesta, että map.at() toiminto palauttaa vain kartassa olevat avaimet. Alueen ulkopuoliset näppäimet aiheuttavat virheen, koska virhe näytetään, kun välitimme avaimen 'y' map.at toiminto.
Esimerkki 3: Map.at()-funktion käyttö elementtien käyttämiseen
Elementtiin pääsee käsiksi käyttämällä määritettyä numeroelementtiä map.at-funktiosta. Toteutetaan tämä ohjelma yllä olevan lausunnon toteuttamiseksi. Olemme määrittäneet karttamoduulin ensin otsikko-osaan, koska sitä tarvitaan pääsyyn map.at toiminto. Sitten meillä on päätoiminto, jossa karttaluokka alustaa karttaobjektin nimellä 'Kartta'. Tällä 'Map'-objektilla olemme luoneet merkkijonojen avaimet ja määrittäneet niille numeron arvon. Sen jälkeen soitimme map.at funktio, jossa on cout-käsky ja välittänyt 'Example'-näppäimen syötteeksi.
#include#sisällytä
#sisällytä
käyttäen nimiavaruutta std;
int main ( )
{
kartta < merkkijono, int > Kartta;
Kartta [ 'Minun' ] = 1 ;
Kartta [ 'c++' ] = kaksi ;
Kartta [ 'Kartta' ] = 3 ;
Kartta [ 'Esimerkki' ] = 4 ;
cout << Map.at ( 'Esimerkki' ) ;
palata 0 ;
}
Numeroelementti palautetaan määritettyä avainta vastaan map.at toiminto. Tulos antaa arvon '4', koska tämä numero on määritetty kartan avainelementille 'Example'.
Esimerkki 4: Map.at()-funktion käyttö elementtien muokkaamiseen
Tarkastellaan yksinkertaista esimerkkiä avainarvoon liittyvän arvon muuttamisesta. Olemme luoneet listan kartasta kutsumalla karttaluokkaa ja luomalla kohteen 'M1'. Olemme määrittäneet merkkijonoarvon kartan jokaiselle avaimelle. Sitten meidän on hyödynnettävä map.at toiminto. Vuonna map.at -toimintoa, olemme käyttäneet määritettyjä näppäimiä ja määrittäneet uudet merkkijonoarvot näitä näppäimiä vastaan. Nyt näitä arvoja muutetaan edellisen kanssa. For-silmukan avulla olemme iteroineet jokaisen elementin kartasta ja näyttäneet sen ulostulona.
#include#sisällytä
#sisällytä
käyttäen nimiavaruutta std;
int main ( )
{
kartta < int, merkkijono > M1 = {
{ 10 , 'c++' } ,
{ kaksikymmentä , 'java' } ,
{ 30 , 'python' } ,
{ 40 , 'terävä' } ,
{ viisikymmentä , 'AVATA' } } ;
M1.at ( kaksikymmentä ) = 'Tensorflow' ;
M1.at ( 30 ) = 'Linux' ;
M1.at ( viisikymmentä ) = 'Scala' ;
cout << ' \n Elementit:' << endl;
varten ( auto & x: M1 ) {
cout << x.ensin << ':' << x.sekunti << '\n' ;
}
palata 0 ;
}
Huomaa, että tulosteena saadut arvot ovat muuttaneet äskettäin määritettyjä merkkijonoarvoja map.at toiminto. Päivitetyt arvot näkyvät alla olevassa tilannekuvassa.
Johtopäätös
Artikkeli käsittelee map.at-toimintoa. Olemme tarjonneet map.at()-funktion toiminnallisuuden sen syntaksin kautta ja esimerkki on toteutettu C++-kääntäjällä. Map.at()-funktio on erittäin hyödyllinen, koska se mahdollistaa elementtien saavutettavuuden ja palauttaa selkeän poikkeuksen tai virheen, joka kuvaa tilannetta, joka syntyi menetelmää kutsuttaessa. Lisäksi voimme antaa uusia arvoja olemassaoloavaimelle map.at-funktion kautta.