Así como tengo seteado tanto Codeblocks como Dev C++ 5.11, este Código entra en un loop infinito.
Código
#include <map> #include <string> using namespace std; int main( ) { map < string, string > ciudades = { { "123", "Lima" }, { "234", "Tucson" }, { "345", "Buenos Aires" } }; // 1 INSERTAR UN ELEMENTO, un " PAIR : ' Tipo, Tipo ' ' Key, Value ' " ciudades.insert ( pair < string, string > ( "1", "Moscu" ) ); // Recién después de ( 2 ) se Mostrará a Moscú como 1er Elemento // por tener su " Key " menor a las demás ciudades.insert ( pair < string, string > ( "123", "Trujillo" ) ); // 2 MOSTRAR X PANTALLA // I " BUSCANDO " UN ELEMENTO MEDIANTE LA LLAVE string key = "123"; cout << ciudades [ key ] << "\n"; // Mostrará " Lima " porque a Cada " Value " le corresponde una única " Key " // II RECORRIENDO EL MAPA ( Existen dos Posibilidades ) // a ) La Forma más " Tradicional " = map Tipo, Tipo :: DECLARANDO UN ITERATOR ( Y LUEGO ) " FOR CON PUNTEROS EN COUT " map < string, string > :: iterator it; for ( it = ciudades.begin( ); it != ciudades.end( ); ++it ) // Los " ( ) " ' especifican ' " LO QUE EXISTA AL COMIENZO // E INMEDIATAMENTE DESPUÉS ( x eso ' it != ' ) DEL FINAL ( "\0 " ) { cout << it -> first << " = " << it -> second << "\n"; } // b ) La forma más Fácil = " AUTO& ' Key Value ' : NombreDelMapa " ( Y LUEGO ) " FOR SIN PUNTEROS EN COUT " // ESTA FORMA SÓLO SE CONSIGE S E T E A N D O este archivo p q sea compilado con C++ 17 // para aprovechar STRUCTURED BINDINGS de C++ 17 for ( auto& [k v] : ciudades ) { cout << k << " = " << v << "\n"; } */ //3 MODIFICAR UN ELEMENTO = NombreDelMapa " . " FIND ( " Key " ) map < string, string > :: iterator it2 = ciudades.find("123"); if ( it2 != ciudades.end( )) { it2 -> second = "Trujillo"; } for ( auto& [k v] : ciudades ) { cout << k << " = " << v << "\n"; } // 4 ELIMINAR UN ELEMENTO = NombreDelMapa " . " ERASE ( " Key " ) ciudades.erase("1"); for ( auto& [k v] : ciudades ) { cout << k << " = " << v << "\n"; } return 0; }
Gracias x leeer el mensaje.