Ver Mensaje Individual
  #40 (permalink)  
Antiguo 18/03/2016, 18:36
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: headers, carpetas y menúes c++

Código C++:
Ver original
  1. // v1
  2. std::list<Persona>::iterator getRow(const std::string& xnom){
  3.   auto lambda = [&xnom]
  4.   ( const Persona& p)
  5.   { return p.nom == xnom; };
  6.  
  7.   return std::find_if(lista.begin(),lista.end(),lambda);
  8. }
  9.  
  10. // v2
  11. std::list<Persona>::iterator getRow(const std::string& xnom){
  12.   auto it = lista.begin();
  13.  
  14.   for( ; it!=lista.end(); ++it )
  15.   {
  16.     if( it->nom == xnom )
  17.       break;
  18.   }  
  19.   return it;
  20. }
  21.  
  22. // v3
  23. Persona* getRow(const std::string& xnom){
  24.   Persona* ptr = nullptr;
  25.  
  26.   for(auto& p : lista){
  27.     if(p.nom == xnom){
  28.       ptr = &p;
  29.       break;
  30.     }
  31.   }
  32.  
  33.   return ptr;
  34. }

No las he compilado luego no garantizo que estén libres de errores... pero deberían.

¿Qué problema tienes con los punteros? Trabajar con punteros es casi igual a trabajar con Java. Vale que en C++ hay algo más de curro pero tampoco es excesivo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.