Na mape C++

Na Mape C



Knižnica C++ STL nám poskytuje triedu mapy. Mapy sa považujú za asociatívne kontajnery, ktoré uchovávajú objekty v páre usporiadaných kľúčových hodnôt a mapovaných hodnôt. Nikdy nemôžu existovať dve namapované hodnoty s rovnakou hodnotou kľúča. Trieda mapy poskytuje mnoho funkcií, ale tu budeme diskutovať o nich map.at() funkciu. Namapovaný prvok na hodnotu kľúča sa odovzdá ako parameter funkcie, na ktorý sa odkazuje pomocou map.at() funkciu. Keď sa pokúšame dostať k prvku, ktorý nie je v dosahu kontajnera, map.at() funkcia vyhodnotí rozsah kontajnera a vyvolá výnimku.

Syntax funkcie map.at().

Na implementáciu funkcie map.at() v C++ musíme postupovať podľa nižšie uvedenej syntaxe.







Map_variable.at ( kľúč / hodnotový pár )



Použili sme objekt mapy s názvom „Map_variable“ s v () funkciu. Vráti prvok, na ktorý sa priamo odkazuje, a ukazuje na zadanú hodnotu kľúča. Mapa kľúča údajov väčšinou závisí od rozsahu mapy. Ak nie, existuje možnosť, že v čase vykonania sa vráti výnimka alebo chyba, čo znamená, že hodnota je mimo definovaného rozsahu. Teraz použijeme túto syntax v kódoch C++, aby sme ukázali, že to funguje.



Príklad 1: Použitie funkcie map.at().

Program je implementovaný na demonštráciu funkcie map.at. Prepojili sme v () funkcia s mapa() funkcia, ktorá preberá nejaké vstupné hodnoty a ukazuje svoju funkčnosť. Na tento účel sme vyplnili sekciu hlavičky programu importovaním mapového modulu ďalším požadovaným modulom pre c++. Potom sme zavolali hlavné() funkciu pre deklaráciu mapy z triedy mapy. Objekt mapy je označený ako „Moja mapa“. Zoznam máp vytvoríme zadaním kľúča mapy a hodnoty.





Po tomto sme vyvolali map.at() funkcia, ktorá mapuje zadaný reťazec na celé číslo. Potom sme vytlačili výsledky z map.at() funkciu zo slučky for. Cyklus for používa odkaz na kľúčové slovo „auto“. Kľúčové slovo auto znamená, že inicializátor automaticky odstráni typ premennej z premennej, ktorá je deklarovaná. Výpis cout vytlačí páry v poradí, ktoré sa vráti z map.at() funkciu.

#include

#include

#include


int main ( )

std: :map < std::string,int > Moja mapa = {

{ 'jablko', 0 } ,

{ 'hrozno' , 0 } ,

{ 'mango' , 0 } }

MyMap.at ( 'jablko' ) = 5 ;

MyMap.at ( 'hrozno' ) = 10 ;

MyMap.at ( 'mango' ) = 6 ;

pre ( auto & m: Moja mapa ) {

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

< silný > vrátiť 0 ;

}



Teraz máme výsledky z vyššie uvedeného programu, ktorý implementuje map.at() funkciu. Všetky zadané celé čísla, ktoré sú v rozsahu, sa zobrazia pri každom reťazci.

Príklad 2: Použitie funkcie map.at() pre výnimku mimo rozsah

Prostredníctvom vzorového programu sme diskutovali o použití map.at funkciu v C++. Teraz sme implementovali ďalší map.at v programe. Tentoraz však vráti hodnotu, ktorá je uvedená na mape, a tiež výnimku out_of_range, keď kľúč nie je špecifikovaný. Ako musíme využiť map.at preto sme do hlavičky pridali modul mapy. Potom sme definovali hlavnú funkciu, kde sa ako parameter odovzdáva „void“.

Vo vnútri hlavnej funkcie sme inicializovali konštruktor zoznamu vytvorením objektu mapy ako „m1“. Zoznam máp má rôzne reťazce kľúčov a proti nim celočíselné hodnoty. Potom sme vytlačili kľúč „i“ tak, že sme ho prešli cez map.at funkciu. Použili sme blok try-catch. V bloku try sme predstavili kľúč neexistencie v map.at funkciu. Keďže kľúč je mimo rozsahu, blok try vyvolá chybu.

#include

#include

pomocou menného priestoru std;

int main ( neplatné ) {


mapa < char, int > m1 = {

{ 'l' , 1 } ,

{ 'ja' , dva } ,

{ 'n' , 3 } ,

{ 'in' , 4 } ,

{ 'X' , 5 } ,

} ;



cout << 'hodnota kľúča mapy m1['i'] = ' << m1.at ( 'ja' ) << endl;



skúste {

m1.at ( 'Y' ) ;

} chytiť ( const out_of_range & a ) {

cerr << 'Chyba pri' << e.čo ( ) << endl;

}



vrátiť 0 ;

}

Z výstupnej snímky obrazovky si môžeme predstaviť, že map.at() funkcia vráti iba klávesy nachádzajúce sa na mape. Klávesy mimo dosahu vyhodia chybu, pretože chyba sa zobrazí, keď sme prešli kľúčom „y“ v map.at funkciu.

Príklad 3: Použitie funkcie map.at() na prístup k prvkom

K prvku je možné pristupovať pomocou špecifikovaného prvku číslic z funkcie map.at. Implementujme tento program, aby sme splnili vyššie uvedené vyhlásenie. Mapový modul sme definovali najskôr v sekcii hlavičky, pretože je potrebný na prístup k map.at funkciu. Potom máme hlavnú funkciu, kde trieda mapy inicializovala objekt mapy ako „Map“. Pomocou tohto objektu „Mapa“ sme vygenerovali kľúče reťazcov a priradili im hodnotu číslice. Potom sme zavolali na map.at funkciu s príkazom cout a ako vstup odovzdali kláves „Príklad“.

#include

#include

#include

pomocou menného priestoru std;

int main ( )

{

mapa < reťazec, int > Mapa;

Mapa [ 'moja' ] = 1 ;

Mapa [ 'c++' ] = dva ;

Mapa [ 'mapa' ] = 3 ;

Mapa [ 'príklad' ] = 4 ;

cout << Map.at ( 'príklad' ) ;

vrátiť 0 ;

}

Číselný prvok sa vráti oproti zadanému kľúču v map.at funkciu. Výsledkom je hodnota „4“, pretože táto číslica je priradená kľúčovému prvku „Príklad“ mapy.

Príklad 4: Použitie funkcie map.at() na úpravu prvkov

Zoberme si jednoduchý príklad úpravy hodnoty spojenej s hodnotou kľúča. Zoznam mapy sme vytvorili volaním triedy mapy a vytvorením objektu „M1“. Ku každému kľúču mapy sme priradili hodnotu reťazca. Potom musíme využiť map.at funkciu. V map.at Použili sme špecifikované kľúče a priradili sme im nové reťazcové hodnoty. Teraz sa tieto hodnoty zmenia na predchádzajúce. Pomocou cyklu for sme iterovali každý prvok z mapy a zobrazili sme ho ako výstup.

#include

#include

#include


pomocou menného priestoru std;


int main ( )

{

mapa < int,reťazec > M1 = {

{ 10 , 'c++' } ,

{ dvadsať , 'java' } ,

{ 30 , 'python' } ,

{ 40 , 'charp' } ,

{ päťdesiat , 'OTVORENÉ' } } ;




M1.at ( dvadsať ) = 'Tensorflow' ;

M1.at ( 30 ) = 'linux' ;

M1.at ( päťdesiat ) = 'Scala' ;

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

pre ( auto & x: M1 ) {

cout << x.prvý << ': ' << x.sekunda << '\n' ;

}


vrátiť 0 ;

}

Všimnite si, že hodnoty získané ako výstup zmenili novo priradené hodnoty reťazca v map.at funkciu. Aktualizované hodnoty sú zobrazené na snímke nižšie.

Záver

Článok je o funkcii map.at. Funkcionalitu funkcie map.at() sme poskytli prostredníctvom jej syntaxe a príklad je implementovaný pomocou kompilátora C++. Funkcia map.at() je veľmi užitočná, pretože umožňuje prístupnosť prvkov a vracia jasnú výnimku alebo chybu, ktorá popisuje situáciu, ktorá nastala pri volaní metódy. Ďalej môžeme pomocou funkcie map.at priradiť nové hodnoty voči kľúču existencie.