• Viernes 8 de Noviembre de 2024, 14:33

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.


Temas - Sankara

Páginas: [1]
1
C/C++ / Error con iterador
« en: Martes 9 de Junio de 2009, 13:49 »
while (!fich3.eof()) //leo de un fichero el nombre (string), identificador (int) y puesto de un empleado (int)
   {
      fich3>>nombre;
      fich3>>identificador;
      fich3>>puesto;
      set<empleado>::iterator itr=conjunto.begin(); //iterador del conjunto
      if ((itr!=conjunto.end()) && ((*itr).VerIde()==identificador))
      {
         (*itr).setIde(nombre,puesto);
         itr++;
      }
   }


Me da error en (*itr).setIde(nombre,puesto);  

 error: pasar âconst empleadoâ como el argumento âthisâ de âvoid empleado::setIde(const std::string&, const int&)â descarta a los calificadores

setIde es una función que devuelve void y modifica el identificador de una clase empleado.
¿Alguna solución?

2
C/C++ / Error con map y copy
« en: Sábado 30 de Mayo de 2009, 18:08 »
Hola,

Mi problema es el siguiente,
por un lado tengo una clase que tiene como campo protegido un diccionario que guarda un string como clave y un entero
map<string, int> p;

ahora, en una función, necesito mostrar todos los datos de ese diccionario utilizando un copy (necesariamente tiene que ser un copy)

void miclase::ImprimeDatos(ostream & out) const
{

copy(p.begin(), p.end(), ostream_iterator<pair<string,int>>(out, "n"));

}

No compila esa línea del copy, para intentar solucionarlo, sobrecargué el operador de salida de miclase para que imprimiera pares, lo hice así:

ostream & operator<< (ostream out, const std::pair<string, int>& x){
return out << x.first<<x.second;}

Me sigue dando error

¿Alguien me ayuda?

Páginas: [1]