Ver Mensaje Individual
  #16 (permalink)  
Antiguo 11/03/2016, 02:16
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++

A ver, lo que tienes que hacer es, simple y llanamente, sobrecargar el operador de comparación para que el contenedor sea capaz de comparar elementos de tipo Persona para encontrar el elemento a eliminar.

La función a usar es remove, no remove_if. Sobrecarga el operador (y que funcione correctamente) y el código debería funcionar.

No hagas experimentos raros. Simplemente necesitas decirle a tu programa cómo se comparan dos elementos de tipo Persona.

Por otro lado, sí que es posible devolver elementos sin usar punteros, puedes devolver los objetos tal cual, pero en ese caso tendrías que pensar en algún mecanismo para identificar "objetos no válidos" (por ejemplo si la función tiene que devolverte los datos de "Pedro" pero no hay ningún registro con ese nombre). Una opción puede ser asignar un id negativo o que el nombre esté en blanco... eso ya es decisión tuya.

Un saludo
__________________
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.