Problema con clase list

Iniciado por .:BlackCoder:., 15 Julio 2010, 01:08 AM

0 Miembros y 1 Visitante están viendo este tema.

.:BlackCoder:.

Wenas estaba ayudando a alguien con un ejercicio de listas usando la clase list, porque aun no se de listas  :xD

Y pes me da un error con el iterador, no se si es un error basico sobre los iteradores o algo mas intenso. Aca dejo las secciones de codigo:

Código (cpp) [Seleccionar]
typedef struct {
    unsigned int NumPasaport;
    string Nombre;
    unsigned int CI;
    string Destino, Hora;
} Pasajeros;


Código (cpp) [Seleccionar]
list<Pasajeros> pasajero;

Código (cpp) [Seleccionar]
    list<Pasajeros>::iterator it=pasajero.begin();
    cout << *it << endl;//Aca


El error:
no match for 'operator<<' in 'std::cout << it'

En el wxDev
Saludos...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




do-while

#1
¡Buenas!

Hace mucho tiempo que no trabajo con C++, y no se si lo que digo servira para algo o no pero bueno. Puede ser un problema con la preferencia de los operadores << y *, prueba a poner un parentesis para agrupar *it->(*it). Aunque este no sea el problema, para evitar errores producidos por la preferencia de los operadores, siempre que tengas alguna duda, utiliza los parentesis.

Lo segundo que se me ocurre es que no hayas sobrecargado el operador << en la clase Pasajeros. Por si no lo has sbrecargado nunca aqui va un esquema:

Código (cpp) [Seleccionar]

friend /* solo en el prototipo */ ostream& operator<<(ostream& flujoSalida,Tuclase &unObjeto)
{
   //aqui das salida a la informacion del objeto de tu clase

   return flujoSalida;
}


Si es por alguna otra razon, ya me corregira alguien y nos sacara de dudas  :xD

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

.:BlackCoder:.

 :laugh: Ni sabia que lo debia sobrecargar  :xD

Pero yo no lo llegue a estudiar y pes al amigo q se lo mandaron tampoco... me toca hacerlo de otra forma...

Menos mal q es eso  :xD Crei q por no poder seguir estudiando habia perdido la practica  :silbar:

Saludos... Gracias, voy a ver como lo hago de otra forma, porq si se lo hago con sobrecarga de operadores, aparte de tener q estudiar sobre eso, le pondrian mala nota puesto q no se lo han dado en clases...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




SirLanceCC

Código (cpp) [Seleccionar]
cout << it->Nombre << endl;

Para fácil y rápido, creo que así debería funcionar.

.:BlackCoder:.

Seh asi lo toy haciendo... Parece que si perdi la practica puse it.xx  :laugh: pero ya lo habia solucionado... Gracias por ambas respuestas...

Saludos...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com