mapa::at() en C++ STL

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.

mapa::en()

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *