A C++ térképen

A C Terkepen



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.