Salve ragazzi spiego subito il mio problema. Ho una classe Persona con variabili membro Nome e Cognome. Ho una classe InterfacciaPersonale che ha come variabile membro un vector di puntatori a Persona:
vector<Persona*> VP;
il gestore deve permettere l'inserimento ordinato secondo il cognome. Ho ridefinito l'operatore < in classe Persona. Avevo pensato quindi di utilizzare VP.push_back(*Persona PERSONA) e poi utilizzare la funzione sort.Come posso fare?
FILE CHE GESTISCE I COMPUTER:
InterfacciaPersonale::InterfacciaPersonale() {}
/************************************************** ********/
void InterfacciaPersonale::inserisci(Persona* PERSONA){
VP.push_back(PERSONA);
sort(VP.begin(),VP.end());
}
/************************************************** ********/
RIDEFINIZIONE DELL'OPERATORE < NELLA CLASSE PERSONA
/************************************************** ********/
bool operator<(Persona &P1,Persona &P2){return P1.get_Cognome()<P2.get_Cognome();}
/************************************************** ********/
se uso sort come scritto l'errore non è di compilazione, è solo che non ho capito ancora sotto quale criterio effettua l'ordinamento xD.
Gli input sono (Manager e Programmatore sono sottoclassi di Persona):
/************************************************** ********/
InterfacciaPersonale ip;
Manager* m1=new Manager("John", "Reds", pa);
ip.inserisci(m1);
Programmatore* p1=new Programmatore("Paolo", "Bianchi");
p1->setComponente(pa->myCompVector[0]);
ip.inserisci(p1);
Programmatore* p2=new Programmatore("Luca", "Verde");
p2->setComponente(pa->myCompVector[1]);
ip.inserisci(p2);
Programmatore* p3=new Programmatore("Gino", "Magenta");
p3->setComponente(pa->myCompVector[2]);
ip.inserisci(p3);
Manager* m2=new Manager("Mark", "Pink", pb);
ip.inserisci(m2);
Programmatore* p4=new Programmatore("Salvo", "Gialli");
p4->setComponente(pb->myCompVector[0]);
ip.inserisci(p4);
Programmatore* p5=new Programmatore("Mario", "Blu");
p5->setComponente(pb->myCompVector[1]);
ip.inserisci(p5);
ip.stampa();
/************************************************** ********/
L'output è:
/************************************************** ********/
RUOLO: PROGRAMMATORE
NOME: Paolo
COGNOME: Bianchi
RUOLO: PROGRAMMATORE
NOME: Luca
COGNOME: Verde
RUOLO: PROGRAMMATORE
NOME: Salvo
COGNOME: Gialli
RUOLO: PROGRAMMATORE
NOME: Gino
COGNOME: Magenta
RUOLO: MANAGER
NOME: Mark
COGNOME: Pink
RUOLO: PROGRAMMATORE
NOME: Mario
COGNOME: Blu
RUOLO: MANAGER
NOME: John
COGNOME: Reds
/************************************************** ********/
Come vedete è un mix tra sort per cognome e inserimento in testa xD.Sono nuovo e spero di avere una risposta dai più gentili visto che il programma funziona tutto ma ha questo piccolo problemino ed è un vero peccato consegnarlo errato.