Alla mappa C++

Alla Mappa C



La libreria C++ STL ci fornisce una classe map. Le mappe sono considerate contenitori associativi che conservano gli oggetti in una coppia di valori chiave ordinati e valori mappati. Non possono mai esserci due valori mappati con lo stesso valore chiave. La classe Map fornisce molte funzioni, ma qui discuteremo di map.at() funzione. L'elemento mappato al valore della chiave viene passato come parametro della funzione a cui si fa riferimento utilizzando il map.at() funzione. Quando tentiamo di raggiungere un elemento che non è all'interno dell'intervallo del contenitore, il map.at() La funzione valuta l'intervallo del contenitore e genera un'eccezione.

Sintassi della funzione map.at()

Dobbiamo seguire la sintassi seguente per implementare la funzione map.at() in C++.







Mappa_variabile.at ( chiave / coppia di valori )



Abbiamo usato l'oggetto mappa che si chiama 'Map_variable' con il a() funzione. Restituisce l'elemento a cui si fa riferimento direttamente e punta al valore chiave specificato. La mappa della chiave dei dati dipende principalmente dall'intervallo della mappa. In caso contrario, esiste la possibilità che venga restituita un'eccezione o un errore al momento dell'esecuzione che indica che il valore è oltre l'intervallo definito. Ora useremo questa sintassi nei codici C++ per mostrare che funziona.



Esempio 1: utilizzo della funzione map.at()

Il programma è implementato per dimostrare la funzione map.at. Abbiamo collegato il a() funzione con il carta geografica() funzione che prende alcuni valori di input e ne mostra la funzionalità. Per questo, abbiamo riempito la sezione dell'intestazione del programma importando il modulo della mappa con un altro modulo richiesto per c++. Quindi, abbiamo chiamato il principale() funzione per la dichiarazione della mappa dalla classe map. L'oggetto della mappa è etichettato come 'MyMap'. Creiamo l'elenco delle mappe fornendo la chiave e il valore della mappa.





Successivamente, abbiamo invocato il map.at() funzione che mappa la stringa specificata su un numero intero. Quindi, abbiamo stampato i risultati di map.at() funzione dal ciclo for. Il ciclo for utilizza il riferimento alla parola chiave 'auto'. La parola chiave auto indica che l'inizializzatore rimuoverà automaticamente il tipo della variabile da quella dichiarata. L'istruzione cout stamperà le coppie nell'ordine restituito da map.at() funzione.

#includi

#includi

#includi


int principale ( )

std: :mappa < std::stringa, int > La mia mappa = {

{ 'mela', 0 } ,

{ 'uva' , 0 } ,

{ 'manghi' , 0 } }

MyMap.at ( 'mela' ) = 5 ;

MyMap.at ( 'uva' ) = 10 ;

MyMap.at ( 'manghi' ) = 6 ;

per ( auto & m: La mia mappa ) {

std::cout << m.primo << ':' << m.secondo << '\n' ; }

< forte > Restituzione 0 ;

}



Ora, abbiamo i risultati del programma di cui sopra che implementa il map.at() funzione. Tutti gli interi specificati che sono nell'intervallo vengono visualizzati su ciascuna stringa.

Esempio 2: utilizzo della funzione map.at() per l'eccezione out_of_range

Abbiamo discusso attraverso un programma di esempio l'uso di mappa.at funzione in C++. Ora ne abbiamo implementato un altro mappa.at nel programma. Ma questa volta restituirà il valore che viene presentato all'interno della mappa e anche l'eccezione out_of_range quando la chiave non è specificata. Poiché dobbiamo utilizzare il mappa.at funzione, quindi abbiamo aggiunto il modulo mappa nell'intestazione. Quindi, abbiamo definito la funzione principale in cui il 'vuoto' viene passato come parametro.

All'interno della funzione principale, abbiamo inizializzato il costruttore di liste creando l'oggetto mappa come “m1”. L'elenco delle mappe ha diverse stringhe di chiavi e valori interi contro di esse. Quindi, abbiamo stampato la chiave 'i' facendola passare attraverso il mappa.at funzione. Abbiamo utilizzato il blocco try-catch. Nel blocco try, abbiamo presentato la chiave di non-esistenza nel file mappa.at funzione. Poiché la chiave è fuori dall'intervallo, il blocco try genererà l'errore.

#includi

#includi

usando lo spazio dei nomi std;

int principale ( vuoto ) {


carta geografica < car, int > m1 = {

{ 'l' , 1 } ,

{ 'io' , Due } ,

{ 'n' , 3 } ,

{ 'in' , 4 } ,

{ 'X' , 5 } ,

} ;



cout << 'valore chiave mappa m1['i'] = ' << m1.at ( 'io' ) << fine;



Tentativo {

m1.at ( 'Y' ) ;

} presa ( const fuori_intervallo & e ) {

cerr << 'Errore in' << e.cosa ( ) << fine;

}



Restituzione 0 ;

}

Possiamo visualizzare dallo screenshot di output che il file map.at() la funzione restituisce solo le chiavi presenti nella mappa. Le chiavi fuori intervallo generano l'errore poiché l'errore viene visualizzato quando abbiamo passato la chiave 'y' nel file mappa.at funzione.

Esempio 3: utilizzo della funzione map.at() per l'accesso agli elementi

È possibile accedere a un elemento utilizzando l'elemento di cifre specificato dalla funzione map.at. Implementiamo questo programma per realizzare la dichiarazione di cui sopra. Abbiamo definito prima il modulo della mappa nella sezione dell'intestazione in quanto è necessario per accedere al mappa.at funzione. Quindi, abbiamo la funzione principale in cui la classe map ha inizializzato l'oggetto mappa come 'Map'. Con questo oggetto “Mappa” abbiamo generato le chiavi delle stringhe e assegnato loro il valore della cifra. Successivamente, abbiamo chiamato il mappa.at una funzione con l'istruzione cout e ha passato il tasto 'Esempio' come input.

#includi

#includi

#includi

usando lo spazio dei nomi std;

int principale ( )

{

carta geografica < stringa, int > Carta geografica;

Carta geografica [ 'Mio' ] = 1 ;

Carta geografica [ 'c++' ] = Due ;

Carta geografica [ 'Carta geografica' ] = 3 ;

Carta geografica [ 'Esempio' ] = 4 ;

cout << Mappa.at ( 'Esempio' ) ;

Restituzione 0 ;

}

L'elemento digit viene restituito rispetto alla chiave specificata in mappa.at funzione. Il risultato dà il valore “4” poiché questa cifra è assegnata all'elemento chiave “Esempio” di una mappa.

Esempio 4: utilizzo della funzione map.at() per la modifica degli elementi

Consideriamo una semplice istanza di modifica del valore associato al valore chiave. Abbiamo creato la lista della mappa chiamando la classe map e creando l'oggetto “M1”. Abbiamo assegnato il valore della stringa a ciascuna chiave della mappa. Quindi, dobbiamo utilizzare il mappa.at funzione. Nel mappa.at funzione, abbiamo usato le chiavi specificate e assegnato i nuovi valori di stringa a quelle chiavi. Ora, questi valori verranno modificati con il precedente. Con l'aiuto del ciclo for, abbiamo ripetuto ogni elemento dalla mappa e lo abbiamo visualizzato come output.

#includi

#includi

#includi


usando lo spazio dei nomi std;


int principale ( )

{

carta geografica < int, stringa > M1 = {

{ 10 , 'c++' } ,

{ venti , 'Giava' } ,

{ 30 , 'pitone' } ,

{ 40 , 'acuto' } ,

{ cinquanta , 'APRIRE' } } ;




M1.at ( venti ) = 'flusso tensoriale' ;

M1.at ( 30 ) = 'Linux' ;

M1.at ( cinquanta ) = 'Scala' ;

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

per ( auto & x: M1 ) {

cout << x.primo << ':' << x.secondo << '\n' ;

}


Restituzione 0 ;

}

Si noti che i valori ottenuti come output hanno modificato i valori di stringa appena assegnati in mappa.at funzione. I valori aggiornati sono mostrati nell'istantanea qui sotto.

Conclusione

L'articolo riguarda la funzione map.at. Abbiamo fornito la funzionalità della funzione map.at() attraverso la sua sintassi e l'esempio è implementato con il compilatore C++. La funzione map.at() è molto utile in quanto consente l'accessibilità agli elementi e restituisce una chiara eccezione o errore che descrive la situazione che si è verificata quando il metodo viene chiamato. Inoltre, possiamo assegnare nuovi valori rispetto alla chiave di esistenza tramite la funzione map.at.