Kartē C++

Karte C



C++ STL bibliotēka mums nodrošina kartes klasi. Kartes tiek uzskatītas par asociatīviem konteineriem, kas saglabā objektus sakārtotu atslēgu vērtību un kartētu vērtību pārī. Nekad nevar būt divas kartētas vērtības ar vienu un to pašu atslēgas vērtību. Kartes klase nodrošina daudzas funkcijas, taču šeit mēs to apspriedīsim map.at() funkciju. Atslēgas vērtībai piesaistītais elements tiek nodots kā funkcijas parametrs, uz kuru ir atsauce, izmantojot map.at() funkciju. Kad mēs mēģinām nokļūt līdz elementam, kas nav konteinera diapazonā, map.at() funkcija novērtē konteinera diapazonu un izdara izņēmumu.

Funkcijas map.at() sintakse

Mums ir jāievēro tālāk norādītā sintakse, lai ieviestu funkciju map.at() programmā C++.







Map_variable.at ( taustiņu / vērtību pāris )



Mēs esam izmantojuši kartes objektu, kura nosaukums ir “Map_variable” ar at () funkciju. Tas atgriež elementu, uz kuru ir tieši atsauce, un norāda uz norādīto atslēgas vērtību. Datu atslēgas karte galvenokārt ir atkarīga no kartes diapazona. Ja tā nav, pastāv iespēja, ka izpildes laikā tiks atgriezts izņēmums vai kļūda, kas norāda, ka vērtība pārsniedz noteikto diapazonu. Tagad mēs izmantosim šo sintaksi C++ kodos, lai parādītu, ka tā darbojas.



1. piemērs: Funkcijas map.at() izmantošana

Programma ir ieviesta, lai demonstrētu map.at funkciju. Mēs esam saistījuši at () funkcija ar karte () funkcija, kas ņem dažas ievades vērtības un parāda tās funkcionalitāti. Šim nolūkam mēs esam aizpildījuši programmas galvenes sadaļu, importējot kartes moduli ar citu nepieciešamo moduli c++. Pēc tam mēs esam piezvanījuši galvenais () funkcija kartes deklarācijai no kartes klases. Kartes objekts ir apzīmēts kā “MyMap”. Mēs veidojam karšu sarakstu, norādot kartes atslēgu un vērtību.





Pēc tam mēs izmantojām map.at() funkcija, kas kartē norādīto virkni uz veselu skaitli. Pēc tam mēs izdrukājām rezultātus no map.at() funkcija no for cilpas. Cilpa for izmanto atslēgvārda atsauci “auto”. Automātiskais atslēgvārds norāda, ka inicializators automātiski noņems mainīgā tipu no deklarētā. Paziņojumā cout tiks izdrukāti pāri tādā secībā, kādā tie tiks atgriezti no map.at() funkciju.

#include

#include

#iekļaut


int galvenais ( )

std: :map < std::string,int > Mana karte = {

{ 'ābols', 0 } ,

{ 'vīnogas' , 0 } ,

{ 'mango' , 0 } }

MyMap.at ( 'ābols' ) = 5 ;

MyMap.at ( 'vīnogas' ) = 10 ;

MyMap.at ( 'mango' ) = 6 ;

priekš ( auto & m: Mana karte ) {

std::cout << m.pirmais << ':' << m.sekunde << '\n' ; }

< stiprs > atgriezties 0 ;

}



Tagad mums ir rezultāti no iepriekš minētās programmas, kas ievieš map.at() funkciju. Visi norādītie veselie skaitļi, kas atrodas diapazonā, tiek parādīti katrā virknē.

2. piemērs. Funkcijas map.at() izmantošana izņēmumam ārpus diapazona

Izmantojot programmas piemēru, mēs esam apsprieduši programmas izmantošanu map.at funkcija C++. Tagad esam ieviesuši citu map.at programmā. Taču šoreiz tas atgriezīs vērtību, kas tiek parādīta kartē, kā arī izņēmumu ārpus diapazona, ja atslēga nav norādīta. Tā kā mums ir jāizmanto map.at funkciju, tāpēc galvenē esam pievienojuši kartes moduli. Pēc tam mēs esam definējuši galveno funkciju, kurā kā parametrs tiek nodots “tukšums”.

Galvenās funkcijas ietvaros esam inicializējuši saraksta konstruktoru, izveidojot kartes objektu kā “m1”. Kartes sarakstā ir dažādas atslēgu virknes un veselu skaitļu vērtības pret tām. Pēc tam mēs izdrukājām atslēgu “i”, izlaižot to cauri map.at funkciju. Mēs esam izmantojuši try-catch bloku. Mēģināšanas blokā esam parādījuši neesamības atslēgu map.at funkciju. Tā kā atslēga ir ārpus diapazona, mēģinājuma bloks radīs kļūdu.

#include

#iekļaut

izmantojot namespace std;

int galvenais ( nederīgs ) {


karte < char, int > m1 = {

{ 'es' , 1 } ,

{ 'es' , divi } ,

{ 'n' , 3 } ,

{ 'iekšā' , 4 } ,

{ 'x' , 5 } ,

} ;



cout << 'kartes atslēgas vērtība m1['i'] = ' << m1.at ( 'es' ) << endl;



mēģināt {

m1.at ( 'Y' ) ;

} noķert ( const out_of_range & un ) {

cerr << 'Kļūda pie' << e.kas ( ) << endl;

}



atgriezties 0 ;

}

Mēs varam vizualizēt no izvades ekrānuzņēmuma, ka map.at() funkcija atgriež tikai kartē esošās atslēgas. Ārpus diapazona taustiņi rada kļūdu, jo kļūda tiek parādīta, kad mēs nodevām taustiņu “y” laukā map.at funkciju.

3. piemērs. Funkcijas map.at() izmantošana, lai piekļūtu elementiem

Elementam var piekļūt, izmantojot norādīto ciparu elementu no funkcijas map.at. Ieviesīsim šo programmu, lai izpildītu iepriekš minēto apgalvojumu. Mēs esam definējuši kartes moduli vispirms galvenes sadaļā, jo tas ir nepieciešams, lai piekļūtu map.at funkciju. Pēc tam mums ir galvenā funkcija, kurā kartes klase inicializēja kartes objektu kā “Karte”. Izmantojot šo objektu “Karte”, mēs esam ģenerējuši virkņu atslēgas un piešķīruši tām cipara vērtību. Pēc tam mēs piezvanījām uz map.at funkciju ar paziņojumu cout un kā ievadi nodeva taustiņu “Piemērs”.

#include

#iekļaut

#include

izmantojot namespace std;

int galvenais ( )

{

karte < string, int > Karte;

Karte [ 'Mans' ] = 1 ;

Karte [ 'c++' ] = divi ;

Karte [ 'Karte' ] = 3 ;

Karte [ 'Piemērs' ] = 4 ;

cout << Map.at ( 'Piemērs' ) ;

atgriezties 0 ;

}

Ciparu elements tiek atgriezts pret norādīto atslēgu map.at funkciju. Rezultātā tiek iegūta vērtība “4”, jo šis cipars ir piešķirts kartes galvenajam elementam “Piemērs”.

4. piemērs. Funkcijas map.at() izmantošana elementu modificēšanai

Apskatīsim vienkāršu ar atslēgas vērtību saistītās vērtības modificēšanas gadījumu. Esam izveidojuši kartes sarakstu, izsaucot kartes klasi un izveidojot objektu “M1”. Mēs esam piešķīruši virknes vērtību katram kartes taustiņam. Tad mums ir jāizmanto map.at funkciju. Iekš map.at funkciju, esam izmantojuši norādītos taustiņus un šiem taustiņiem piešķīruši jaunās virknes vērtības. Tagad šīs vērtības tiks mainītas ar iepriekšējo. Ar for cilpas palīdzību mēs esam atkārtojuši katru elementu no kartes un parādījuši to kā izvadi.

#include

#include

#iekļaut


izmantojot namespace std;


int galvenais ( )

{

karte < int, virkne > M1 = {

{ 10 , 'c++' } ,

{ divdesmit , 'java' } ,

{ 30 , 'pitons' } ,

{ 40 , 'čarps' } ,

{ piecdesmit , 'OPEN' } } ;




M1.at ( divdesmit ) = 'Tensorflow' ;

M1.at ( 30 ) = 'Linux' ;

M1.at ( piecdesmit ) = 'Scala' ;

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

priekš ( auto & x: M1 ) {

cout << x.pirmais << ':' << x.sekunde << '\n' ;

}


atgriezties 0 ;

}

Ņemiet vērā, ka vērtības, kas iegūtas kā izvade, ir mainījušas tikko piešķirtās virknes vērtības map.at funkciju. Atjauninātās vērtības ir parādītas zemāk esošajā momentuzņēmumā.

Secinājums

Raksts ir par map.at funkciju. Mēs esam nodrošinājuši funkcijas map.at() funkcionalitāti, izmantojot tās sintaksi, un piemērs ir realizēts ar C++ kompilatoru. Funkcija map.at() ir ļoti noderīga, jo nodrošina elementu pieejamību un atgriež skaidru izņēmumu vai kļūdu, kas apraksta situāciju, kas radās metodes izsaukšanas laikā. Turklāt mēs varam piešķirt jaunas vērtības pret esamības atslēgu, izmantojot funkciju map.at.