liste collegate sono utili per una lista dinamica di oggetti che cambiano di frequente. Una lista concatenata può eseguire Lista inserzioni e delezioni in tempo costante , mentre gli array dinamici eseguono questi compiti in tempo lineare . Questo beneficio per l'inserimento e la cancellazione viene ad un prezzo di avere un tempo di accesso più lento , come la lista deve essere percorsa ogni volta un diverso indice è voluta. Questa mancanza di accesso casuale significa che non è possibile utilizzare un algoritmo di ordinamento standard come " qsort ", che è una implementazione dell'algoritmo di ordinamento rapido trovato nella libreria standard C + + . Fortunatamente , i progettisti di std :: list forniti strumenti di ordinamento specifici che sono ben documentate e semplice da usare. Istruzioni
1
Includere della libreria standard elenco di intestazione nel file di codice . Questo può essere già incluso se si è definito l'oggetto elenco nel codice sorgente .
# Include
2 Modificare l' implementazione della struttura vi sarà di ordinamento per sovraccaricare l'operatore " < " . Questo operatore è utilizzato da std :: list durante l'ordinamento dell'elenco . Assicurarsi di selezionare il campo dati appropriato per ordinare su , altrimenti i risultati di ordinamento potrebbero non essere quello desiderato .
//Questa è una struttura di esempio . Modifica la tua struttura esistente per utilizzare il < operatore
struct MyStruct
{
int m_dataToSortOn ;
bool operator < ( const MyStruct & sd)
{
ritorno this.m_dataToSortOn < rhs.m_dataToSortOn ;
}
} ;
3 < p > Chiamare il metodo "sort" sul vostro oggetto lista. Questo sarà ordinare la lista di oggetti in base all'uscita del operatore " < "
//Ordina l'elenco dei dati
myList.sort ( ) .