Innanzitutto salve a tutti, mi chiamo Francesco e sono nuovo del forum. Vi scrivo perche non riesco a risolvere da solo una tipologia di esercizi che mi è capitata all' ultimo esame di informatica. Si tratta di scrivere funzioni per l' ordinamento di un vettore di oggetti appartenenti a una classe definita dal professore.
Esempio:
class Messaggio
{
public:
Messaggio ();
Messaggio (string d,int l);
string get_dest () const;
int get_lunghezza () const;
private:
string dest;
int lunghezza;
};
per prima cosa il testo dell' esercizio chiede di implementare una classe SMS che eredita alcune funzioni da Messaggio e ne aggiunge altre,naturalmente assumendo implementata questa,e fino a qui nessun problema (credo!).
Il secondo esercizio però mi mette in difficoltà, ecco il testo:
"scrivere una funzione void sort (vector <Messaggio> & v) che ordina un vettore di messaggi in base alla loro lunghezza (in ordine decrescente) e in caso di ugual lunghezza li ordini in base al destinatario (in ordine lessicografico)."
Inoltre richiede di scrivere la complessità dell' algoritmo di ordinamento utilizzato.
Naturalmente ho pensato che la risoluzione del problema fosse legata all' utilizzo di algoritmi di ordinamento come selection_sort, merge_sort, ma ho studiato la loro applicazione soltanto su vettori contenenti parametri e non oggetti. Non so come risolverlo..Vi sarò grato se mi aiuterete. Grazie mille.