A Map C++

A Map C



La biblioteca C++ STL ens proporciona una classe de mapes. Els mapes es consideren contenidors associatius que conserven objectes en un parell de valors de clau ordenats i valors assignats. Mai no hi pot haver dos valors assignats amb el mateix valor de clau. La classe de mapes ofereix moltes funcions, però aquí en parlarem map.at() funció. L'element assignat al valor de la clau es passa com a paràmetre de la funció al qual es fa referència mitjançant l' map.at() funció. Quan intentem arribar a un element que no es troba dins del rang del contenidor, el map.at() La funció avalua l'abast del contenidor i llança una excepció.

Sintaxi de la funció map.at().

Hem de seguir la sintaxi següent per implementar la funció map.at() en C++.







Map_variable.at ( clau / parella de valors )



Hem utilitzat l'objecte mapa que s'anomena 'Map_variable' amb el a() funció. Retorna l'element al qual es fa referència directament i apunta al valor de clau especificat. El mapa clau de dades depèn principalment de l'abast del mapa. Si no és així, hi ha la possibilitat que es torni una excepció o un error en el moment d'execució que signifiqui que el valor està més enllà de l'interval definit. Ara, utilitzarem aquesta sintaxi als codis C++ per mostrar que funciona.



Exemple 1: Ús de la funció map.at().

El programa s'implementa per demostrar la funció map.at. Hem enllaçat el a() funció amb el mapa () funció que pren alguns valors d'entrada i mostra la seva funcionalitat. Per a això, hem omplert la secció de capçalera del programa important el mòdul del mapa amb un altre mòdul necessari per a c++. Llavors, hem anomenat el principal () funció per a la declaració del mapa de la classe del mapa. L'objecte del mapa està etiquetat com 'MyMap'. Creem la llista de mapes donant la clau i el valor del mapa.





Després d'això, vam invocar el map.at() funció que associa la cadena especificada a un nombre enter. A continuació, vam imprimir els resultats del map.at() funció del bucle for. El bucle for utilitza la referència de paraula clau 'auto'. La paraula clau auto indica que l'inicialitzador eliminarà automàticament el tipus de variable de la que s'està declarant. La declaració cout imprimirà els parells en l'ordre que es retorna des de map.at() funció.

#inclou

#inclou

#inclou


int principal ( )

std: :mapa < std::string,int > El meu mapa = {

{ 'poma', 0 } ,

{ 'raïm' , 0 } ,

{ 'mangos' , 0 } }

MyMap.at ( 'poma' ) = 5 ;

MyMap.at ( 'raïm' ) = 10 ;

MyMap.at ( 'mangos' ) = 6 ;

per ( automàtic & m: El meu mapa ) {

std::cout << m.primer << ': ' << m.segon << '\n' ; }

< fort > tornar 0 ;

}



Ara, tenim els resultats del programa anterior que implementa el map.at() funció. Tots els nombres enters especificats que es troben dins de l'interval es mostren contra cada cadena.

Exemple 2: Ús de la funció map.at() per a l'excepció fora de l'interval

Hem comentat a través d'un programa d'exemple l'ús del map.at funció en C++. Ara, n'hem implementat un altre map.at al programa. Però aquesta vegada retornarà el valor que es presenta dins del mapa i també l'excepció out_of_range quan no s'especifica la clau. Com hem d'utilitzar el map.at funció, de manera que hem afegit el mòdul de mapa a la capçalera. Aleshores, hem definit la funció principal on es passa el 'buit' com a paràmetre.

Dins de la funció principal, hem inicialitzat el constructor de llista creant l'objecte mapa com a 'm1'. La llista de mapes té diferents cadenes de claus i els valors enters contra elles. A continuació, vam imprimir la clau 'i' passant-la per la map.at funció. Hem utilitzat el bloc try-catch. En el bloc try, hem presentat la clau d'inexistència al map.at funció. Com que la clau està fora de l'interval, el bloc try generarà l'error.

#inclou

#inclou

utilitzant namespace std;

int principal ( buit ) {


mapa < char, int > m1 = {

{ 'l' , 1 } ,

{ 'jo' , 2 } ,

{ 'n' , 3 } ,

{ 'en' , 4 } ,

{ 'x' , 5 } ,

} ;



cout << 'valor de la clau del mapa m1['i'] = ' << m1.at ( 'jo' ) << endl;



provar {

m1.at ( 'i' ) ;

} agafar ( const fora_de_interval & i ) {

cerr << 'Error a' << e.què ( ) << endl;

}



tornar 0 ;

}

Podem visualitzar a partir de la captura de pantalla de sortida que el map.at() La funció només retorna les claus presents al mapa. Les tecles fora d'interval generen l'error ja que l'error es mostra quan passem la clau 'y' al map.at funció.

Exemple 3: Ús de la funció map.at() per accedir als elements

Es pot accedir a un element mitjançant l'element de dígits especificat de la funció map.at. Implementem aquest programa per complir la declaració anterior. Hem definit el mòdul del mapa primer a la secció de capçalera, ja que és necessari per accedir al map.at funció. Aleshores, tenim la funció principal on la classe del mapa va inicialitzar l'objecte del mapa com a 'Mapa'. Amb aquest objecte “Mapa”, hem generat les claus de cadenes i els hem assignat el valor del dígit. Després d'això, vam trucar al map.at una funció amb la instrucció cout i va passar la tecla 'Exemple' com a entrada.

#inclou

#inclou

#inclou

utilitzant namespace std;

int principal ( )

{

mapa < cadena, int > mapa;

Mapa [ 'El meu' ] = 1 ;

Mapa [ 'c++' ] = 2 ;

Mapa [ 'Mapa' ] = 3 ;

Mapa [ 'Exemple' ] = 4 ;

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

tornar 0 ;

}

L'element dígit es retorna contra la clau especificada al fitxer map.at funció. El resultat dóna el valor '4' ja que aquest dígit s'assigna a l'element clau 'Exemple' d'un mapa.

Exemple 4: Ús de la funció map.at() per modificar elements

Considerem una instància senzilla de modificar el valor associat al valor de la clau. Hem creat la llista del mapa cridant la classe del mapa i creant l'objecte 'M1'. Hem assignat el valor de cadena a cada clau del mapa. Aleshores, hem d'utilitzar map.at funció. En el map.at funció, hem utilitzat les tecles especificades i hem assignat els nous valors de cadena a aquestes tecles. Ara, aquests valors es modificaran amb l'anterior. Amb l'ajuda del bucle for, hem iterat cada element del mapa i l'hem mostrat com a sortida.

#inclou

#inclou

#inclou


utilitzant namespace std;


int principal ( )

{

mapa < int,cadena > M1 = {

{ 10 , 'c++' } ,

{ 20 , 'java' } ,

{ 30 , 'python' } ,

{ 40 , 'csharp' } ,

{ 50 , 'OBERT' } } ;




M1.at ( 20 ) = 'Tensorflow' ;

M1.at ( 30 ) = 'Linux' ;

M1.at ( 50 ) = 'Escala' ;

cout << ' \n Elements:' << endl;

per ( automàtic & x: M1 ) {

cout << x.primer << ': ' << x.segon << '\n' ;

}


tornar 0 ;

}

Observeu que els valors obtinguts com a sortida han modificat els valors de cadena recentment assignats al fitxer map.at funció. Els valors actualitzats es mostren a la instantània següent.

Conclusió

L'article tracta sobre la funció map.at. Hem proporcionat la funcionalitat de la funció map.at() mitjançant la seva sintaxi i l'exemple s'implementa amb el compilador C++. La funció map.at() és molt útil, ja que permet l'accessibilitat als elements i retorna una excepció o error clar que descriu la situació que va sorgir quan s'està cridant el mètode. A més, podem assignar nous valors a la clau d'existència mitjançant la funció map.at.