Los mapas son contenedores asociativos que almacenan elementos en forma de mapa. Cada elemento tiene un valor clave y un valor asignado. Dos valores asignados no pueden tener los mismos valores clave.
La función at() se utiliza para hacer referencia al elemento asignado al valor clave proporcionado como parámetro de la función. Por ejemplo, si tenemos una string «hola» asignada a un número entero 1, pasar el número entero 1 como parámetro de la función at() devolverá la string «hola».
¿En qué se diferencia la función at() del operator[]? La
función at() verifica el rango del contenedor y arroja una excepción cuando intentamos acceder a un elemento que no está en el rango, mientras que operator[] no verifica el rango del contenedor y muestra un comportamiento indefinido cuando se accede a un elemento que no está en el rango.
Sintaxis:
mapname.at(key) Parameters : Key value mapped to the element to be fetched. Returns : Direct reference to the element at the given key value.
Ejemplos:
Input : map mymap; mymap['a'] = 1; mymap.at('a'); Output : 1 Input : map mymap; mymap["abcd"] = 7; mymap.at("abcd"); Output : 7
Errores y excepciones
1. Si la clave no está presente en el mapa, lanza out_of_range.
2. De lo contrario, tiene una fuerte garantía de lanzamiento sin excepción.
C++
// CPP program to illustrate // Implementation of at() function #include <iostream> #include <map> #include <string> using namespace std; int main() { // map declaration map<string, int> mymap; // mapping strings to integers mymap["hi"] = 1; mymap["welcome"] = 2; mymap["thanks"] = 3; mymap["bye"] = 4; // printing the integer mapped // by string "thanks" cout << mymap.at("thanks"); return 0; }
Producción:
3
Complejidad de tiempo: O (logn)
¿En qué se diferencia la función at() del operator[]? La
función at() verifica el rango del contenedor y arroja una excepción cuando intentamos acceder a un elemento que no está en el rango, mientras que operator[] no verifica el rango del contenedor y muestra un comportamiento indefinido cuando se accede a un elemento que no está en el rango.
Publicación traducida automáticamente
Artículo escrito por AyushSaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA