Foros del Web » Programación para mayores de 30 ;) » C/C++ »

como buscar un objeto en una list de objetos

Estas en el tema de como buscar un objeto en una list de objetos en el foro de C/C++ en Foros del Web. Buenas! Tengo el siguiente codigo que supuestamente busca un objeto dentro del list Engine.cpp Código: list<GameScreen>::iterator result = find_if( gamescreens.begin(), gamescreens.end(), bind2nd<CompareGS>(CompareGS(),"startscreen") ); Util.h Código: ...
  #1 (permalink)  
Antiguo 19/09/2012, 13:38
 
Fecha de Ingreso: septiembre-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
como buscar un objeto en una list de objetos

Buenas!
Tengo el siguiente codigo que supuestamente busca un objeto dentro del list

Engine.cpp

Código:
list<GameScreen>::iterator result = find_if(
                                          gamescreens.begin(),
                                          gamescreens.end(),
                                          bind2nd<CompareGS>(CompareGS(),"startscreen")
                                          );
Util.h

Código:
struct CompareGS : public std::binary_function < GameScreen, std::string, bool>
{
    bool operator() (const GameScreen& gs1, const std::string& name) const
    {
        return (gs1.getName() == name);
    }
};
y me da el siguiente error:


error: passing 'const GameScreen' as 'this' argument of 'std::string GameScreen::getName()' discards qualifiers

El tutorial para usar find_if que use para aprender es este:

http://waqqasfarooq.com/waqqasfarooq/index.php?option=com_content&view=article&id=61&It emid=70
  #2 (permalink)  
Antiguo 19/09/2012, 18:34
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 2 meses
Puntos: 22
Respuesta: como buscar un objeto en una list de objetos

Posiblemente no tienes definido el metodo getName() como constante.
  #3 (permalink)  
Antiguo 20/09/2012, 12:18
 
Fecha de Ingreso: septiembre-2012
Mensajes: 38
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: como buscar un objeto en una list de objetos

Funciona!
Gracias por la respuesta

Etiquetas: find, find_if, std
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:31.