En el mapa C++

En El Mapa C



La biblioteca STL de C++ nos proporciona una clase de mapa. Los mapas se consideran contenedores asociativos que retienen objetos en un par de valores clave ordenados y valores asignados. Nunca puede haber dos valores asignados con el mismo valor clave. La clase de mapa proporciona muchas funciones, pero aquí discutiremos las map.at() función. El elemento asignado al valor clave se pasa como el parámetro de la función al que se hace referencia mediante el map.at() función. Cuando intentamos llegar a un elemento que no está dentro del rango del contenedor, el map.at() La función evalúa el rango del contenedor y lanza una excepción.

Sintaxis de la función map.at()

Necesitamos seguir la siguiente sintaxis para implementar la función map.at() en C++.







Map_variable.at ( llave / par de valores )



Hemos utilizado el objeto de mapa que se llama 'Map_variable' con el a() función. Devuelve el elemento al que se hace referencia directamente y apunta al valor clave especificado. El mapa de clave de datos depende principalmente del rango del mapa. Si no es así, existe la posibilidad de que se devuelva una excepción o un error en el momento de la ejecución que signifique que el valor está más allá del rango definido. Ahora, usaremos esta sintaxis en los códigos de C++ para mostrar que funciona.



Ejemplo 1: Uso de la función map.at()

El programa se implementa para demostrar la función map.at. Hemos vinculado el a() funcionar con el mapa() función que toma algunos valores de entrada y muestra su funcionalidad. Para esto, hemos llenado la sección de encabezado del programa importando el módulo del mapa con otro módulo requerido para c++. Entonces, hemos llamado a la principal() función para la declaración de mapa de la clase de mapa. El objeto del mapa está etiquetado como 'MyMap'. Creamos la lista de mapas dando la clave y el valor del mapa.





Después de esto, invocamos el map.at() función que asigna la cadena especificada a un número entero. Luego, imprimimos los resultados de la map.at() función del bucle for. El bucle for utiliza la referencia de palabra clave 'auto'. La palabra clave auto indica que el inicializador eliminará automáticamente el tipo de variable del que se declara. La instrucción cout imprimirá los pares en el orden en que se devuelven de la map.at() función.

#incluir

#incluir

#incluir


int principal ( )

estándar:: mapa < std::cadena,int > MiMapa = {

{ 'manzana', 0 } ,

{ 'uvas' , 0 } ,

{ 'mangos' , 0 } }

MyMap.at ( 'manzana' ) = 5 ;

MyMap.at ( 'uvas' ) = 10 ;

MyMap.at ( 'mangos' ) = 6 ;

por ( auto & m: Mi mapa ) {

estándar::cout << m.primero << ': ' << m.segundo << '\norte' ; }

< fuerte > devolver 0 ;

}



Ahora, tenemos los resultados del programa anterior que implementa el map.at() función. Todos los enteros especificados que están dentro del rango se muestran en cada cadena.

Ejemplo 2: uso de la función map.at() para la excepción out_of_range

Hemos discutido a través de un programa de ejemplo el uso de la map.at función en C++. Ahora, hemos implementado otro map.at en el programa. Pero esta vez devolverá el valor que se presenta dentro del mapa y también la excepción out_of_range cuando no se especifica la clave. Como tenemos que utilizar el map.at función, por lo que hemos agregado el módulo de mapa en el encabezado. Luego, hemos definido la función principal donde se pasa el 'vacío' como parámetro.

Dentro de la función principal, hemos inicializado el constructor de listas creando el objeto de mapa como 'm1'. La lista de mapas tiene diferentes cadenas de claves y los valores enteros contra ellas. Luego, imprimimos la clave “i” pasándola por el map.at función. Hemos empleado el bloque try-catch. En el bloque try, hemos presentado la clave de inexistencia en el map.at función. Como la clave está fuera del rango, el bloque de prueba arrojará el error.

#incluir

#incluir

utilizando el espacio de nombres estándar;

int principal ( vacío ) {


mapa < char, int > m1 = {

            { 'yo' , 1 } ,

            { 'i' , 2 } ,

            { 'norte' , 3 } ,

            { 'en' , 4 } ,

            { 'X' , 5 } ,

            } ;



cout << 'valor clave del mapa m1['i'] = ' << m1.at ( 'i' ) << fin;



probar {

      m1.at ( 'y' ) ;

   } captura ( const fuera_de_rango & y ) {

cerrar << 'Error en' << e.que ( ) << fin;

   }



   devolver 0 ;

}

Podemos visualizar desde la captura de pantalla de salida que el map.at() La función solo devuelve las claves presentes en el mapa. Las teclas fuera de rango tiran el error ya que se muestra el error cuando pasamos la tecla “y” en el map.at función.

Ejemplo 3: uso de la función map.at() para acceder a elementos

Se puede acceder a un elemento usando el elemento especificado de dígitos de la función map.at. Implementemos este programa para lograr la declaración anterior. Primero hemos definido el módulo de mapa en la sección de encabezado, ya que es necesario para acceder al map.at función. Luego, tenemos la función principal donde la clase de mapa inicializó el objeto de mapa como 'Mapa'. Con este objeto “Mapa”, hemos generado las claves de cadenas y les hemos asignado el valor del dígito. Después de eso, llamamos al map.at una función con la declaración cout y pasó la tecla 'Ejemplo' como entrada.

#incluir

#incluir

#incluir

utilizando el espacio de nombres estándar;

int principal ( )

{

mapa < cadena, entero > Mapa;

Mapa [ 'Mi' ] = 1 ;

Mapa [ 'c++' ] = 2 ;

Mapa [ 'Mapa' ] = 3 ;

Mapa [ 'Ejemplo' ] = 4 ;

cout << Map.at ( 'Ejemplo' ) ;

devolver 0 ;

}

El elemento dígito se devuelve contra la clave especificada en el map.at función. El resultado da el valor “4” ya que este dígito se asigna al elemento clave “Ejemplo” de un mapa.

Ejemplo 4: uso de la función map.at() para modificar elementos

Consideremos una instancia simple de modificación del valor asociado con el valor clave. Hemos creado la lista del mapa llamando a la clase de mapa y creando el objeto 'M1'. Hemos asignado el valor de la cadena a cada clave del mapa. Entonces, tenemos que utilizar el map.at función. En el map.at función, hemos utilizado las teclas especificadas y asignado los nuevos valores de cadena contra esas teclas. Ahora, estos valores se modificarán con el anterior. Con la ayuda de for loop, iteramos cada elemento del mapa y lo mostramos como una salida.

#incluir

#incluir

#incluir


utilizando el espacio de nombres estándar;


int principal ( )  

{  

mapa < int,cadena > M1 = {  

                { 10 , 'c++' }

                { 20 , 'Java'   }

                { 30 , 'pitón' }

                { 40 , 'csharp' }

                { 50 , 'ABIERTO'   } }




  M1.at ( 20 ) = 'Flujo de tensor' ;

  M1.at ( 30 ) = 'linux' ;

  M1.at ( 50 ) = 'Escala' ;

cout << ' \norte Elementos:' << fin;

  por ( auto & X: M1 ) {  

cout << x.primero << ': ' << x.segundo << '\norte'

  }  


   devolver 0

}  

Observe que los valores obtenidos como salida han modificado los valores de cadena recién asignados en el map.at función. Los valores actualizados se muestran en la siguiente instantánea.

Conclusión

El artículo trata sobre la función map.at. Hemos proporcionado la funcionalidad de la función map.at() a través de su sintaxis y el ejemplo se implementa con el compilador C++. La función map.at() es muy útil ya que permite la accesibilidad de los elementos y devuelve una excepción clara o un error que describe la situación que surgió cuando se llamó al método. Además, podemos asignar nuevos valores contra la clave de existencia a través de la función map.at.