• Jueves 14 de Noviembre de 2024, 16:54

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - nika537

Páginas: [1]
1
C/C++ / Re: Problemas con maps
« en: Sábado 29 de Agosto de 2009, 19:26 »
Gracias por contestar. El problema estaba en el menu que cree para llamar a las funciones.

Merci!!!

2
C/C++ / Problemas con maps
« en: Miércoles 26 de Agosto de 2009, 18:52 »
Tengo un problema con este map y no sé porque no guarda los datos que le doy.

El caso es que desde un TAD tengo que crear un map para que haga diferentes funciones que le mandare desde un menu en el main. Una de ellas es guardar fichas con su numero de identificacion y otro TAD "fitxa" (con toda la informacion sobre esta).

El problema es que me las guarda cuando llamo a la funcion "OmpleBD" pero cuando desde el menu pido, por ejemplo, sacar la informacion del map me dice que esta vacio, incluso cuando pido meter una segunda ficha el tamaño del map es 0.

Si alguien me puede ayudar...llevo varios dias con el mismo problema y no doy con la solucion.

Aqui os dejo mi codigo. Si necesitais saber algo más, por favor preguntadme.

----------------------------------------
----------------------------------------
//Joc.h

#ifndef Joc_H
#define Joc_H
#include<iostream>
#include<map>
#include "Fitxa.h"
#include "error.h"

using namespace std;

class Joc
{
public:
typedef pair <int, Fitxa> BD;

private:
map<int, Fitxa> mbd;

public:
//Constructor
Joc();

int OmpleBD ();
int Treu ();
};
#endif
------------------------------------
------------------------------------
//Joc.cpp

#include "Joc.h"
//Constructor
Joc::Joc()
{}
//Retorna un int para saber si se ha producido un error
int Joc::OmpleBD ()
{
Fitxa Fi;
cin>>Fi;
int ID = Fi.getID();
map<int, Fitxa>::iterator iter=mbd.find(ID);
if(iter!=mbd.end())
{
return error::JA_EXISTEIX;
}
else
{
mbd.insert(map<int, Fitxa>::value_type(ID, Fi));
return error::OK;
}

int Joc::Treu()
{
int size=mbd.size();
if(size==0) {return error::NO_HI_HA_RES_A_LA_BD;}
else
{
map <int, Fitxa>::iterator iter=mbd.begin();
while(iter!=mbd.end())
{
cout<<iter->second;
iter++;
}
return error::OK;
}
}

Páginas: [1]