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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  agregar varios datos en un MAP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: agregar varios datos en un MAP  (Leído 2,880 veces)
elcout

Desconectado Desconectado

Mensajes: 12


Ver Perfil
agregar varios datos en un MAP
« en: 7 Diciembre 2020, 01:01 am »

hola les comento que estoy realizando un programa en donde en una clase tengo que usar 2 maps para guardar información... el detallito es que debo guardar en una misma llave o map  3 valores estos serian 2 string y un int pero no se me ocurre como hacer que el programa me deje hacerlo... lo haria con multimap pero el profesor  especifico que debe ser usando maps y ya se me acabaron las ideas:(

Les dejo como me plantearon que debia ser el desarrollo de los map:

Toda la información se guarda en una clase llamada Producción que tiene como atributos dos map. El primer map tiene como llave el nombre de la planta y como contenido un vector de objetos de tipo Insumo. Un objeto de tipo Insumo tiene tres atributos: nombreIQ, unidad de medida y stock. El segundo map, registra el consumo de cada insumo en cada planta, su llave es el nombre de la planta y el contenido es un objeto de tipo Consumo que tiene tres atributos: nombreIQ, cantidad consumida y fecha (yyyymmdd).

no les pido que me lo hagan solo que me orienten cualquier pdf o ayuda se las agradecería un monton:(


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: agregar varios datos en un MAP
« Respuesta #1 en: 7 Diciembre 2020, 01:24 am »

No veo cuál es el problema que comentas. No tienes que guardar 3 valores (2 strings y 1 int) pues estos están encapsulados dentro de una clase. Lo que tú vas a guardar es el objeto de esa clase únicamente. Sería algo así el esquema general:
Código
  1. class Insumo {
  2.  private:
  3.    std::string nombreIQ;
  4.    std::string unidadMedida;
  5.    int stock;
  6.  //...
  7. };
  8.  
  9. class Consumo {
  10.  private:
  11.    std::string nombreIQ;
  12.    int cantidadConsumida;
  13.    int fecha; // o el tipo de dato que sea
  14.  //...
  15. };
  16.  
  17. class Produccion {
  18.  private:
  19.    std::map<std::string, std::vector<Insumo>> insumos;
  20.    std::map<std::string, Consumo> consumos;
  21.  //...
  22. };

No sé si esto te sirve pero por lo que veo estabas intentando meter los atributos por separado en el map en vez de crear una clase como te dice en el enunciado. Al final esto es lo que viene siendo el paradigma de programación orientada a objetos (POO): utilizar clases para encapsular información de una entidad y poder utilizar esa clase para instanciar objetos de ese tipo.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
elcout

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: agregar varios datos en un MAP
« Respuesta #2 en: 7 Diciembre 2020, 01:56 am »

ohhh verdad no lo habia tenido en cuenta me habia cerrado a una sola posibilidad te agradezco el consejo!



EI: juntando mensajes consecutivos.



una ultima duda al momento de  ingresarle valores al map insumos como deberia hacerlo?
se que para la llave  que es el nombre de la planta va insumos[nombre] pero no recuerdo como pasar los datos k debe almacenar en formato vector... no se si se me entiende
« Última modificación: 7 Diciembre 2020, 10:46 am por Eternal Idol » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: agregar varios datos en un MAP
« Respuesta #3 en: 7 Diciembre 2020, 03:44 am »

Tienes que asignarle con el = el dato que tiene que guardar.
Según las declaraciones de clases que he hecho antes, el segundo campo es un std::vector<Insumo> por lo que es ese objeto el que le tienes que asignar.
Código
  1. Insumo insumo1("Nombre insumo 1", "Unidad de medida 1", 1);
  2. std::vector<Insumo> insumos; // creas el vector
  3. // introduces los objetos que quieras
  4. insumos.push_back(insumo1);
  5. //...
  6. std::map<string, std::vector<Insumo>> myMap;
  7. myMap["tu cadena"] = insumos;
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
agregar un registro a una base de datos
Programación Visual Basic
Sebicho 7 3,322 Último mensaje 2 Julio 2005, 21:27 pm
por Zanoni
PHP ayuda agregar datos
PHP
xtreme-shumy 2 2,051 Último mensaje 16 Octubre 2006, 20:47 pm
por xtreme-shumy
Redireccionar y agregar datos!!
Programación Visual Basic
Hole_System 0 1,218 Último mensaje 19 Junio 2008, 05:49 am
por Hole_System
Cómo agregar varios arreglos en un arreglo de dos dimensiones
Programación C/C++
UmbraNoche 5 3,538 Último mensaje 5 Febrero 2015, 22:57 pm
por _Enko
Agregar datos de una BD a varios TextBox
.NET (C#, VB.NET, ASP)
SlayerBur 0 2,142 Último mensaje 14 Julio 2019, 16:05 pm
por SlayerBur
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines