A C++ STL könyvtár egy térképosztályt biztosít számunkra. A térképek asszociatív tárolóknak minősülnek, amelyek az objektumokat rendezett kulcsértékek és leképezett értékek párjában tartják meg. Soha nem lehet két leképezett érték azonos kulcsértékkel. A térképosztály számos funkciót biztosít, de itt megvitatjuk a map.at() funkció. A kulcsértékhez leképezett elem a függvény paramétereként kerül átadásra, amelyre a hivatkozás segítségével hivatkozik map.at() funkció. Amikor olyan elemhez próbálunk eljutni, amely nincs a tároló tartományán belül, a map.at() függvény kiértékeli a tároló tartományát, és kivételt dob.
A map.at() függvény szintaxisa
Az alábbi szintaxist kell követnünk a map.at() függvény C++-ban való megvalósításához.
Map_variable.at ( kulcs / értékpár )
A „Map_variable” nevű térképobjektumot használtuk a nál nél() funkció. Visszaadja a közvetlenül hivatkozott elemet, és a megadott kulcsértékre mutat. Az adatkulcs-térkép leginkább a térkép hatótávolságától függ. Ha nem, akkor előfordulhat, hogy a végrehajtás során kivételt vagy hibát ad vissza, ami azt jelzi, hogy az érték a meghatározott tartományon kívül esik. Most ezt a szintaxist fogjuk használni a C++ kódokban, hogy megmutassuk, hogy működik.
1. példa: A map.at() függvény használata
A program a map.at funkció bemutatására szolgál. Összekapcsoltuk a nál nél() funkciót a térkép() függvény, amely bizonyos bemeneti értékeket vesz fel, és megmutatja annak működését. Ehhez a program fejlécét úgy töltöttük ki, hogy a térképmodult egy másik szükséges modullal importáltuk a c++-hoz. Ezután felhívtuk a fő() függvény a térképosztályból származó térképdeklarációhoz. A térkép objektuma „MyMap” címkével van ellátva. A térképek listáját a térkép kulcsának és értékének megadásával hozzuk létre.
Ezt követően hivatkoztunk a map.at() függvény, amely a megadott karakterláncot egész számra képezi le. Ezután kinyomtattuk az eredményeket a map.at() függvény a for ciklusból. A for ciklus az „auto” kulcsszó hivatkozást használja. Az auto kulcsszó azt jelzi, hogy az inicializáló automatikusan eltávolítja a változó típusát a deklarált típusból. A cout utasítás a párokat abban a sorrendben nyomtatja ki, ahogyan az a map.at() funkció.
#include#include
#include
int fő ( )
std: :map < std::string,int > Saját térkép = {
{ 'alma', 0 } ,
{ 'szőlő' , 0 } ,
{ 'mangó' , 0 } }
MyMap.at ( 'alma' ) = 5 ;
MyMap.at ( 'szőlő' ) = 10 ;
MyMap.at ( 'mangó' ) = 6 ;
számára ( auto & m: MyMap ) {
std::cout << m.első << ':' << m.másodperc << '\n' ; }
< erős > Visszatérés 0 ;
}
Most megvannak a fenti program eredményei, amely megvalósítja a map.at() funkció. A tartományban lévő összes megadott egész szám megjelenik minden karakterlánc mellett.
2. példa: A map.at() függvény használata tartományon kívüli kivételhez
Példaprogramon keresztül tárgyaltuk a map.at függvény C++ nyelven. Most egy másikat is megvalósítottunk map.at a programban. De ezúttal a térképen belüli értéket adja vissza, valamint az out_of_range kivételt is, ha a kulcs nincs megadva. Mivel ki kell használnunk a map.at függvényt, ezért a fejlécben hozzáadtuk a térképmodult. Ezután definiáltuk azt a fő függvényt, ahol a „void” paraméterként kerül átadásra.
A fő funkción belül inicializáltuk a listakonstruktort úgy, hogy a térképobjektumot „m1”-ként hoztuk létre. A térképlistában különböző kulcssorok és az ezekhez tartozó egész értékek szerepelnek. Ezután kinyomtattuk az „i” kulcsot úgy, hogy átadjuk a map.at funkció. A try-catch blokkot alkalmaztuk. A try blokkban bemutattuk a nem létező kulcsot a map.at funkció. Mivel a kulcs a tartományon kívül van, ezért a try blokk hibát fog dobni.
#include#include
névtér használata std;
int fő ( üres ) {
térkép < char, int > m1 = {
{ 'én' , 1 } ,
{ 'én' , két } ,
{ 'n' , 3 } ,
{ 'ban ben' , 4 } ,
{ 'x' , 5 } ,
} ;
cout << 'map key value m1['i'] = ' << m1.at ( 'én' ) << endl;
próbálja meg {
m1.at ( 'Y' ) ;
} fogás ( const out_of_range & és ) {
cerr << 'Hiba itt' << e.mit ( ) << endl;
}
Visszatérés 0 ;
}
A kimeneti képernyőképen megjeleníthetjük, hogy a map.at() függvény csak a térképen lévő kulcsokat adja vissza. A tartományon kívüli billentyűk hibát dobnak, mivel a hiba akkor jelenik meg, amikor átadtuk az „y” kulcsot a map.at funkció.
3. példa: A map.at() függvény használata az elemek eléréséhez
Egy elem a map.at függvény megadott számjegyeinek elemével érhető el. Valósítsuk meg ezt a programot, hogy teljesítsük a fenti állítást. Először a fejléc részben határoztuk meg a térképmodult, mivel ez szükséges a hozzáféréshez map.at funkció. Ezután van a fő funkciónk, ahol a térképosztály „Térképként” inicializálta a térképobjektumot. Ezzel a „Map” objektummal generáltuk a karakterláncok kulcsait, és hozzárendeltük a számjegy értékét. Ezt követően felhívtuk a map.at egy függvényt a cout utasítással, és az „Example” billentyűt adta át bemenetként.
#include#include
#include
névtér használata std;
int fő ( )
{
térkép < húr, int > Térkép;
Térkép [ 'Az én' ] = 1 ;
Térkép [ 'c++' ] = két ;
Térkép [ 'Térkép' ] = 3 ;
Térkép [ 'Példa' ] = 4 ;
cout << Map.at ( 'Példa' ) ;
Visszatérés 0 ;
}
A számjegy elem a megadott kulcs ellenében kerül visszaadásra map.at funkció. Az eredmény a „4” értéket adja, mivel ez a számjegy a térkép „Példa” kulcseleméhez van hozzárendelve.
4. példa: A map.at() függvény használata az elemek módosításához
Tekintsünk egy egyszerű példát a kulcsértékhez társított érték módosítására. Elkészítettük a térkép listáját a térképosztály meghívásával és az „M1” objektum létrehozásával. A térkép minden kulcsához hozzárendeltük a karakterlánc értéket. Ezután ki kell használnunk a map.at funkció. Ban,-ben map.at függvényben használtuk a megadott kulcsokat, és hozzárendeltük az új karakterlánc-értékeket ezekhez a kulcsokhoz. Most ezek az értékek módosulnak az előzővel. A for ciklus segítségével minden elemet iteráltunk a térképről, és megjelenítettük kimenetként.
#include#include
#include
névtér használata std;
int fő ( )
{
térkép < int,string > M1 = {
{ 10 , 'c++' } ,
{ húsz , 'Jáva' } ,
{ 30 , 'piton' } ,
{ 40 , 'éles' } ,
{ ötven , 'NYISD KI' } } ;
M1.at ( húsz ) = 'Tensorflow' ;
M1.at ( 30 ) = 'Linux' ;
M1.at ( ötven ) = 'Scala' ;
cout << ' \n Elemek:' << endl;
számára ( auto & x: M1 ) {
cout << x.első << ':' << x.másodperc << '\n' ;
}
Visszatérés 0 ;
}
Figyelje meg, hogy a kimenetként kapott értékek módosították az újonnan hozzárendelt karakterlánc-értékeket a map.at funkció. A frissített értékek az alábbi pillanatképen láthatók.
Következtetés
A cikk a map.at funkcióról szól. A map.at() függvény funkcionalitását a szintaxison keresztül biztosítottuk, és a példa C++ fordítóval valósult meg. A map.at() függvény rendkívül hasznos, mivel lehetővé teszi az elemek elérhetőségét, és egyértelmű kivételt vagy hibát ad vissza, amely leírja a metódus meghívásakor felmerült helyzetet. Továbbá a map.at függvényen keresztül új értékeket rendelhetünk a létezési kulcshoz.