elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17  (Leído 10,346 veces)
snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« en: 20 Diciembre 2021, 08:23 am »

Posiblemente consiguiera lo que busco si alguien me pudiera decir cómo setear correctamente Codeblocks 20.03 ( solamente para este archivo ) para compilar con C ++ 17 -- ya tengo instalada la ultima versión de MinGW, con ésta pude compilar de todo ....... hasta ahora.
Así como tengo seteado tanto Codeblocks como Dev C++ 5.11, este Código entra en un loop infinito.

Código
  1. #include <map>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main( )
  6. {
  7.  
  8. map < string, string > ciudades = { { "123", "Lima" },
  9.                                    { "234", "Tucson" },
  10.                                    { "345", "Buenos Aires" }
  11. };
  12.  
  13.  
  14. // 1  INSERTAR UN ELEMENTO, un "  PAIR : ' Tipo, Tipo '  ' Key, Value '  "
  15.  
  16. ciudades.insert ( pair < string, string > ( "1", "Moscu" ) ); // Recién después de ( 2 ) se Mostrará a Moscú como 1er Elemento
  17.                                                              // por tener su " Key " menor a las demás
  18.  
  19. ciudades.insert ( pair < string, string > ( "123", "Trujillo" ) );
  20.  
  21.  
  22. // 2  MOSTRAR X PANTALLA
  23. // I  " BUSCANDO " UN ELEMENTO MEDIANTE LA LLAVE
  24.  
  25. string key = "123";
  26.  
  27. cout << ciudades [ key ] << "\n"; // Mostrará " Lima " porque a Cada " Value " le corresponde una única " Key "
  28.  
  29.  
  30.  
  31. // II  RECORRIENDO EL MAPA ( Existen dos Posibilidades )
  32. // a ) La Forma más " Tradicional " =   map  Tipo, Tipo :: DECLARANDO UN ITERATOR ( Y LUEGO ) " FOR CON PUNTEROS EN COUT "
  33.  
  34. map < string, string > :: iterator it;
  35.  
  36. for ( it = ciudades.begin( ); it != ciudades.end( ); ++it ) // Los " ( ) "  ' especifican ' " LO QUE EXISTA AL COMIENZO
  37.                                                            // E INMEDIATAMENTE DESPUÉS ( x eso ' it != ' ) DEL FINAL ( "\0         " )
  38. {
  39.  
  40. cout << it -> first << " = " << it -> second << "\n";
  41.  
  42. }
  43.  
  44.  
  45. // b ) La forma más Fácil = "   AUTO&  ' Key  Value '  :  NombreDelMapa   "  ( Y LUEGO ) " FOR SIN PUNTEROS EN COUT "
  46. // ESTA FORMA SÓLO SE CONSIGE  S E T E A N D O  este archivo p q sea compilado con C++ 17
  47. // para aprovechar STRUCTURED BINDINGS de C++ 17
  48.  
  49. for ( auto& [k v] : ciudades )
  50. {
  51.  
  52. cout << k << " = " << v << "\n";
  53.  
  54. }
  55.  
  56. */
  57. //3 MODIFICAR UN ELEMENTO = NombreDelMapa " . " FIND ( " Key " )
  58.  
  59. map < string, string > :: iterator it2 = ciudades.find("123");
  60.  
  61. if ( it2 != ciudades.end( ))
  62. {
  63. it2 -> second = "Trujillo";
  64. }
  65.  
  66. for ( auto& [k v] : ciudades )
  67. {
  68.  
  69. cout << k << " = " << v << "\n";
  70.  
  71. }
  72.  
  73. // 4 ELIMINAR UN ELEMENTO = NombreDelMapa " . " ERASE ( " Key " )
  74.  
  75. ciudades.erase("1");
  76.  
  77. for ( auto& [k v] : ciudades )
  78. {
  79.  
  80. cout << k << " = " << v << "\n";
  81.  
  82. }
  83.  
  84.  
  85. return 0;
  86. }
  87.  

Gracias x leeer el mensaje.






« Última modificación: 20 Diciembre 2021, 08:42 am por snoopty » En línea

.xAk.


Desconectado Desconectado

Mensajes: 395


F0r3v3R NeWbI3


Ver Perfil WWW
Re: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« Respuesta #1 en: 20 Diciembre 2021, 15:29 pm »

¿no sería suficiente añadir -std=gnu++17 o -std=c++17 en las opciones de compilación del proyecto?

es auto& [ k, v ] ¿cierto?

el bucle infinito debe ser por ese for en el que incrementas antes y no después (++it)

Saludos



« Última modificación: 20 Diciembre 2021, 15:42 pm por .xAk. » En línea


snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
Re: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« Respuesta #2 en: 21 Diciembre 2021, 11:12 am »

Gracias x responder
Es que no tengo habilitado " Build Options " en Proyect; cómo lo activo ? ( existiría la posibilidad de añadir -std=gnu++17 (ó) -std=c++17 desde otro menú ?? )
Desde Settings / Compiler / Compiler Settings sólo tengo la flag -std=C17, la tildé y no me lo compila.  
De lo otro; así es, como vos decís, "  auto& [ k, v ] "
« Última modificación: 21 Diciembre 2021, 11:14 am por snoopty » En línea

BloodSharp


Desconectado Desconectado

Mensajes: 802


El Messi-Vegeta :D


Ver Perfil
Re: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« Respuesta #3 en: 21 Diciembre 2021, 14:13 pm »

( existiría la posibilidad de añadir -std=gnu++17 (ó) -std=c++17 desde otro menú ??





B#
En línea



snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
Re: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« Respuesta #4 en: 8 Enero 2022, 18:53 pm »

Gracias amigo; pero si has leído, no puedo hacer " 1 " si no tengo habilitado
Build Options dentro del menú Proyects .... entonces no puedo llegar a 4.
En línea

.xAk.


Desconectado Desconectado

Mensajes: 395


F0r3v3R NeWbI3


Ver Perfil WWW
Re: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« Respuesta #5 en: 8 Enero 2022, 19:34 pm »

si has leído

sorry, leí por encima,

SaludOS
En línea


MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« Respuesta #6 en: 9 Enero 2022, 11:56 am »

¿Puede ya tuvieras el .cpp y lo abrieras sin más sin generar un proyecto? Eso explicaría que el IDE no lo reconociera como tal y te deshabilitara ese menú.
En línea

snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
Re: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« Respuesta #7 en: 9 Enero 2022, 19:39 pm »

sorry, leí por encima,

SaludOS



No ..... esa respuesta no era para vos = era para Bloodsharp
« Última modificación: 9 Enero 2022, 19:41 pm por snoopty » En línea

snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
Re: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« Respuesta #8 en: 9 Enero 2022, 19:44 pm »

¿Puede ya tuvieras el .cpp y lo abrieras sin más sin generar un proyecto? Eso explicaría que el IDE no lo reconociera como tal y te deshabilitara ese menú.


Gracias x responder : no; lo escribí, y luego intenté compilar.
Por otra parte, te comento que soy algo nuevo en todo esto; siempre abro " empty files " antes de escribir código .... y no " new proyect " : ¿ esto influiría tal vez ?
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: MAPAS : Código donde es necesario setear a Codeblocks con compilador para C++ 17
« Respuesta #9 en: 9 Enero 2022, 19:51 pm »

Supongo que sí. Cuando creas un proyecto el IDE te prepara el entorno para hacer todo el trabajo de compilación por ti.

Un empty file es un archivo simplemente. A lo mejor el IDE sabe qué hacer con él, puede. Lo que sí es cierto es que en cuánto necesites más que ese archivo el IDE no sabrá qué hacer pues no hay nada que se lo diga.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines