// Añadir personas al archivo
void addNewPersona(vector<Persona *> &personas) {
int Id;
cout << "Asigne un ID para la persona: ";
cin >> Id;
// Verifica si el ID existe.
int exists = -1;
for (size_t i = 0; i < personas.size(); i++) {
if (personas[i]->getId() == Id) {
exists = i;
break;
}
}
//Actualiza datos de personas nuevas
if (exists != -1) {
cout << "Este ID ya es existente." << endl;
}
else {
// Añade la persona con todos sus datos
string nombrecompleto;
int edadpersona, drecibida;
cout << "Entrar nombre con apellidos: ";
cin >> nombrecompleto;
cout << "Entrar edad: ";
cin >> edadpersona;
cout << "Entrar dosis recibidas: ";
cin >> drecibida;
Persona *persona = new Persona(nombrecompleto, edadpersona, drecibida);
//Persona *persona = new Persona(nombrecompleto, edadpersona, drecibida);
personas.push_back(persona);
cout << "Persona añadida exitosamente." << endl;
}
cout << endl;
auto it = std::find_if( personas.begin(), personas.end(),
[Id](auto p){ return p->getId() == Id; } );
if ( it != personas.end() ) {
cout << "Este ID ya es existente.\n";
}
Use of pre-made algorithms can simplify your code and thus avoid some errors.