December 7
Le liste concatenate sono utili per le liste dinamiche degli oggetti che cambieranno spesso. Una lista collegata può eseguire inserimenti lista e delezioni in tempo costante, mentre gli array dinamici eseguire queste operazioni in tempo lineare. Questo beneficio per l'inserimento e la cancellazione ha un prezzo di avere un tempo di accesso più lento, come la lista deve essere attraversato ogni volta un diverso indice è desiderato. Questa mancanza di accesso casuale significa che non è possibile utilizzare uno standard algoritmo di ordinamento come "qsort", che è una implementazione dell'algoritmo quick sort trovato nella libreria standard C ++. Fortunatamente, i progettisti di std :: list forniti strumenti di ordinamento specifici che sono ben documentati e semplice da usare.
1 Includi intestazione lista della libreria standard nel file di codice. Questo può essere già incluso se è stato definito l'oggetto lista nel codice sorgente.
includere <list>
2 Modificare l'implementazione della struttura vi verrà ordinamento sovraccaricare l'operatore "<". Questo operatore viene utilizzato da std :: list durante l'ordinamento della lista. Assicurarsi di selezionare il campo dati corretto per ordinare su, altrimenti i risultati di ordinamento potrebbero non essere come previsto.
// Questa è una struttura esempio. Modificare la struttura esistente di utilizzare l'operatore <
struct MyStruct
{
int m_dataToSortOn;
operatore & lt bool; (Const MyStruct & sd)
{
tornare this.m_dataToSortOn & lt; rhs.m_dataToSortOn;
}
};
3 Chiamare il metodo "sort" sul vostro oggetto lista. Ciò ordinerà l'elenco di oggetti in base all'uscita del "<" operatore.
// Ordinare l'elenco dei dati
myList.sort ();