• Viernes 8 de Noviembre de 2024, 14: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 - 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++ / Re: Arreglos unidimensionales!
« en: Domingo 31 de Mayo de 2009, 12:27 »
Hola,
bueno en primer lugar el vector no lo declaras bien
vector<int> v(50); debería ser así para darle tamaño 50 y no con corchetes, los corchetes son el operador de acceso a los elementos

por otro lado, en la función promedio no estás pasando bien el vector, deberías pasarlo así:

void promedio(vector<int> &v,int n)

y la utilizarías así promedio(v, n);

a ser posible pasa en el vector por referencia en el prototipo. La función que tienes para calcular la media no está mal... simplemente ten en cuenta que estás haciendo una división entera, por eso no te sale el resultado que esperas... para ello deberías hacer conversión a float...

por ejemplo así:

float pro;
y al salir del bucle pones
pro=(acum*1.0)/n;

3
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]