English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ map at()A função é usada para obter o valor do tipo mapeadoChave valorAcesso a elementos do map. Se o map não contiver a chave acessada, lançaout_of_rangeExceções.
Supondo que o valor da chave sejak,a sintaxe é:
mapped_type& at(const key_type& k); const mapped_type& at(const key_type& k) const;
k:a chave de valor do elemento a ser acessado no map.
Ele usa chave valor para retornar uma referência ao valor do elemento map.
Vamos ver um exemplo simples de acesso a elementos.
#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 << " : " << x.second << '\n'; } return 0; }
Saída:
A: 10 B: 20 C: 30
Lá, a função at() é usada para acessar os elementos do map.
Vamos ver um exemplo simples para adicionar elementos usando suas chaves.
#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"; //imprimir a chave101o valor, ou seja w3codebox cout << mymap.at(101); // imprimir a chave102o valor, ou seja. cout << mymap.at(102); // imprimir a chave103o valor, ou seja com cout << mymap.at(103); return 0; }
Saída:
oldtoolbag.com
No exemplo acima, a função at() é usada para adicionar elementos após a inicialização, usando a chave associada.
Vamos ver um exemplo simples para alterar o valor associado a uma chave.
#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 << "O elemento é:" << endl; for (auto& x: mymap) { cout << x.first << " : " << x.second << '\n'; } mymap.at(10) = "Nidhi"; // a chave100 valor alterado para Nidhi mymap.at(3) = "Pinku"; // a chave300 valor alterado para Pinku mymap.at(5) = "Arohi"; // a chave500 valor alterado para Arohi cout << "\nO elemento alterado é:" << endl; for (auto& x: mymap) { cout << x.first << " : " << x.second << '\n'; } return 0; }
Saída:
O elemento é: 100: Nikita 200: Deep 300: Priya 400: Suman 500: Aman O elemento alterado é: 100: Nidhi 200: Deep 300: Pinku 400: Suman 500: Arohi
No exemplo acima, a função at() é usada para alterar o valor associado a uma chave.
Vamos ver um exemplo simples para lidar com exceções de "fora de faixa"?
#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'); // Porque não há valor de chave z no map, ele lançará uma exceção } cout << endl << "Exceção Out of Range em " << e.what(); }
Saída:
Java C++ Python Exceção Out of Range em map::at
O exemplo acima lança uma exceção out_of_range, pois não há valor de chave z no map.