Na Map C++

Na Map C



Knihovna C++ STL nám poskytuje třídu map. Mapy jsou považovány za asociativní kontejnery, které uchovávají objekty v páru uspořádaných klíčových hodnot a mapovaných hodnot. Nikdy nemohou existovat dvě namapované hodnoty se stejnou hodnotou klíče. Třída map poskytuje mnoho funkcí, ale zde budeme diskutovat o nich map.at() funkce. Namapovaný prvek na hodnotu klíče je předán jako parametr funkce, na který se odkazuje pomocí map.at() funkce. Když se pokusíme dostat k prvku, který není v dosahu kontejneru, map.at() funkce vyhodnotí rozsah kontejneru a vyvolá výjimku.

Syntaxe funkce map.at().

K implementaci funkce map.at() v C++ musíme postupovat podle syntaxe níže.







Mapa_proměnná.at ( klíč / hodnotový pár )



Použili jsme objekt mapy s názvem „Map_variable“ s v() funkce. Vrátí prvek, na který se přímo odkazuje, a ukazuje na zadanou hodnotu klíče. Mapa datového klíče většinou závisí na rozsahu mapy. Pokud tomu tak není, existuje možnost, že v době provádění bude vrácena výjimka nebo chyba, která znamená, že hodnota je mimo definovaný rozsah. Nyní použijeme tuto syntaxi v kódech C++, abychom ukázali, že to funguje.



Příklad 1: Použití funkce map.at().

Program je implementován pro demonstraci funkce map.at. Propojili jsme v() funkce s mapa() funkce, která přebírá nějaké vstupní hodnoty a ukazuje svou funkčnost. Za tímto účelem jsme naplnili sekci záhlaví programu importem mapového modulu dalším požadovaným modulem pro c++. Poté jsme zavolali hlavní() funkce pro deklaraci mapy ze třídy map. Objekt mapy je označen jako „Moje mapa“. Seznam map vytvoříme zadáním klíče a hodnoty mapy.





Poté jsme vyvolali map.at() funkce, která mapuje zadaný řetězec na celé číslo. Poté jsme vytiskli výsledky z map.at() funkce ze smyčky for. Smyčka for používá odkaz na klíčové slovo „auto“. Klíčové slovo auto znamená, že inicializátor automaticky odstraní typ proměnné z deklarované proměnné. Příkaz cout vytiskne páry v pořadí, které se vrátí z map.at() funkce.

#include

#include <řetězec>

#include


int main ( )

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

{ 'jablko', 0 } ,

{ 'hrozny' , 0 } ,

{ 'mango' , 0 } }

MyMap.at ( 'jablko' ) = 5 ;

MyMap.at ( 'hrozny' ) = 10 ;

MyMap.at ( 'mango' ) = 6 ;

pro ( auto & m: Moje mapa ) {

std::cout << m.první << ':' << m.sekunda << '\n' ; }

< silný > vrátit se 0 ;

}



Nyní máme výsledky z výše uvedeného programu, který implementuje map.at() funkce. U každého řetězce se zobrazí všechna zadaná celá čísla, která jsou v rozsahu.

Příklad 2: Použití funkce map.at() pro výjimku out_of_range

Prostřednictvím příkladu programu jsme diskutovali o použití mapa.at funkce v C++. Nyní jsme implementovali další mapa.at v programu. Tentokrát však vrátí hodnotu, která je uvedena uvnitř mapy, a také výjimku out_of_range, když klíč není zadán. Jak musíme využít mapa.at tak jsme do hlavičky přidali mapový modul. Poté jsme definovali hlavní funkci, kde se jako parametr předává „void“.

Uvnitř hlavní funkce jsme inicializovali konstruktor seznamu vytvořením objektu mapy jako „m1“. Seznam map má různé řetězce klíčů a proti nim celočíselné hodnoty. Poté jsme vytiskli klíč „i“ tak, že jej prostrčili mapa.at funkce. Použili jsme blok try-catch. V bloku try jsme představili klíč neexistence v mapa.at funkce. Protože je klíč mimo rozsah, blok try vyvolá chybu.

#include

#include

pomocí jmenného prostoru std;

int main ( prázdnota ) {


mapa < char, int > m1 = {

{ 'l' , 1 } ,

{ 'já' , dva } ,

{ 'n' , 3 } ,

{ 'v' , 4 } ,

{ 'X' , 5 } ,

} ;



cout << 'hodnota klíče map m1['i'] = ' << m1.at ( 'já' ) << endl;



Snaž se {

m1.at ( 'Y' ) ;

} úlovek ( const out_of_range & a ) {

cerr << 'Chyba na' << e.co ( ) << endl;

}



vrátit se 0 ;

}

Z výstupního snímku obrazovky si můžeme představit, že map.at() funkce vrací pouze klíče na mapě. Klávesy mimo rozsah způsobí chybu, protože chyba se zobrazí, když jsme předali klávesu „y“ v mapa.at funkce.

Příklad 3: Použití funkce map.at() pro přístup k prvkům

K prvku lze přistupovat pomocí zadaného prvku číslic z funkce map.at. Implementujme tento program, abychom splnili výše uvedené prohlášení. Mapový modul jsme definovali nejprve v sekci záhlaví, protože je vyžadován pro přístup k mapa.at funkce. Pak máme hlavní funkci, kde třída map inicializovala objekt mapy jako „Map“. Pomocí tohoto objektu „Map“ jsme vygenerovali klíče řetězců a přiřadili jim hodnotu číslice. Poté jsme zavolali na mapa.at funkci s příkazem cout a předal jako vstup klíč „Příklad“.

#include

#include

#include <řetězec>

pomocí jmenného prostoru std;

int main ( )

{

mapa < řetězec, int > Mapa;

Mapa [ 'Můj' ] = 1 ;

Mapa [ 'c++' ] = dva ;

Mapa [ 'Mapa' ] = 3 ;

Mapa [ 'Příklad' ] = 4 ;

cout << Mapa.at ( 'Příklad' ) ;

vrátit se 0 ;

}

Číselný prvek je vrácen proti zadanému klíči v mapa.at funkce. Výsledek dává hodnotu „4“, protože tato číslice je přiřazena klíčovému prvku „Příklad“ mapy.

Příklad 4: Použití funkce map.at() pro úpravu prvků

Podívejme se na jednoduchý příklad úpravy hodnoty spojené s hodnotou klíče. Seznam mapy jsme vytvořili voláním třídy map a vytvořením objektu „M1“. Ke každému klíči mapy jsme přiřadili hodnotu řetězce. Pak musíme využít mapa.at funkce. V mapa.at Použili jsme zadané klíče a těmto klíčům přiřadili nové řetězcové hodnoty. Nyní budou tyto hodnoty změněny na předchozí. Pomocí cyklu for jsme iterovali každý prvek z mapy a zobrazili jej jako výstup.

#include

#include <řetězec>

#include


pomocí jmenného prostoru std;


int main ( )

{

mapa < int, řetězec > M1 = {

{ 10 , 'c++' } ,

{ dvacet , 'Jáva' } ,

{ 30 , 'krajta' } ,

{ 40 , 'charp' } ,

{ padesáti , 'OTEVŘENO' } } ;




M1.at ( dvacet ) = 'Tensorflow' ;

M1.at ( 30 ) = 'linux' ;

M1.at ( padesáti ) = 'Scala' ;

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

pro ( auto & x: M1 ) {

cout << x.první << ':' << x.sekunda << '\n' ;

}


vrátit se 0 ;

}

Všimněte si, že hodnoty získané jako výstup změnily nově přiřazené hodnoty řetězce v souboru mapa.at funkce. Aktualizované hodnoty jsou zobrazeny na snímku níže.

Závěr

Článek je o funkci map.at. Poskytli jsme funkčnost funkce map.at() prostřednictvím její syntaxe a příklad je implementován pomocí kompilátoru C++. Funkce map.at() je velmi užitečná, protože umožňuje přístupnost prvků a vrací jasnou výjimku nebo chybu, která popisuje situaci, která nastala při volání metody. Dále můžeme pomocí funkce map.at přiřadit nové hodnoty vůči existenčnímu klíči.