English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
map (contenitore) di STL in C++
C++ map at()La funzione viene utilizzata per accedere al valoreValore chiaveL'accesso agli elementi della mappa. Se la mappa non contiene la chiave acceduta, viene lanciataout_of_rangeEccezioni
Supponiamo che il valore chiave siakLa sintassi è:
mapped_type& at(const key_type& k); const mapped_type& at(const key_type& k) const;
k:La chiave da utilizzare per accedere all'elemento con il valore della mappa.
Utilizza i valori chiave per restituire un riferimento al valore dell'elemento della mappa.
Lasciamo vedere un esempio semplice di accesso agli elementi.
#include <iostream> #include <string> #include <map> int main () { map<string, int> m = { { "A", 10 }, { "B", 20 }, { "C", 30 } }; for (auto& x: m) { cout << x.first << ": \ } return 0; }
Output:
A: 10 B: 20 C: 30
In questo caso, la funzione at() viene utilizzata per accedere agli elementi della mappa.
Lasciamo vedere un esempio semplice, che utilizza i valori chiave per aggiungere elementi.
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<int,string> mymap = { { 101, "" }, { 102, "" }, { 103, "" } }; mymap.at(101) = "w3codebox"; mymap.at(102) = "."; mymap.at(103) = "com"; // Stampa il valore associato alla chiave 101, ossia w3codebox cout << mymap.at(101); // Stampa il valore associato alla chiave 102, ossia . cout << mymap.at(102); // Stampa il valore associato alla chiave 103, ossia com cout << mymap.at(103); return 0; }
Output:
oldtoolbag.com
Nel esempio sopra, la funzione at() è utilizzata per aggiungere elementi associati a chiavi dopo l'inizializzazione.
Ecco un esempio semplice per modificare il valore associato alla chiave.
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<int,string> mymap = { { 100, "Nikita" } { 200, "Deep" } { 300, "Priya" } { 400, "Suman" } { 500, "Aman" } cout << "L'elemento è:" << endl; for (auto& x: mymap) { cout << x.first << ": \ } mymap.at(100) = "Nidhi"; // Modificare il valore associato alla chiave 100 con Nidhi mymap.at(300) = "Pinku"; // Modificare il valore associato alla chiave 300 con Pinku mymap.at(500) = "Arohi"; // Modificare il valore associato alla chiave 500 con Arohi cout << "\nL'elemento modificato è:" << endl; for (auto& x: mymap) { cout << x.first << ": \ } return 0; }
Output:
L'elemento è: 100: Nikita 200: Deep 300: Priya 400: Suman 500: Aman L'elemento modificato è: 100: Nidhi 200: Deep 300: Pinku 400: Suman 500: Arohi
Nel esempio sopra, la funzione at() è utilizzata per modificare il valore associato alla chiave.
Ecco un esempio semplice per gestire l'eccezione "fuori dai limiti".
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<char,string> mp = { { 'a', "Java" }, { 'b', "C++" }, { 'c', "Python" }; cout << endl << mp.at('a'); cout << endl << mp.at('b'); cout << endl << mp.at('c'); try { mp.at('z'); // Poiché non esiste una chiave con valore z nel map, lancia un'eccezione } cout << endl << "Out of Range Exception at " << e.what(); }
Output:
Java C++ Python Eccezione Out of Range at map::at
L'esempio sopra lancia un'eccezione out_of_range perché non esiste una chiave con valore z nel map.