Listas ligadas são úteis para listas dinâmicas de objetos que irão mudar com freqüência. Uma lista ligada pode executar inserções e deleções lista em tempo constante , enquanto matrizes dinâmicas executar essas tarefas no tempo linear. Este benefício, para inserção e exclusão tem um preço de ter um tempo de acesso mais lento, como a lista deve ser percorrido a cada vez um índice diferente é desejado. Esta falta de acesso aleatório significa que você não pode usar um algoritmo de ordenação padrão, como " qsort ", que é uma implementação do algoritmo de ordenação rápida encontrado no + + biblioteca padrão C . Felizmente, os designers da std :: list fornecido ferramentas específicas de classificação que estão bem documentados e simples de usar. Instruções
1
Incluir lista de cabeçalho da biblioteca padrão em seu arquivo de código . Isso já pode ser incluído se você tiver definido o objeto da lista em seu código fonte.
# Include
2 Modificar a implementação da estrutura será de classificação para sobrecarregar o operador "<" . Este operador é usado por std :: list quando a ordenação da lista. Certifique-se de selecionar o campo de dados adequada para classificar , caso contrário, os resultados de classificação pode não ser o esperado .
//Este é um exemplo de estrutura . Modifique a sua estrutura já existente para utilizar o operador <
struct MyStruct
{
int m_dataToSortOn ;
bool operator < (const MyStruct & RHS )
{
retornar this.m_dataToSortOn < rhs.m_dataToSortOn ;
}
};
3
Chame o método " tipo " na lista do seu objeto. Isso irá classificar a lista de objetos com base na saída do operador "<"
//Classificar a lista de dados
myList.sort ( ) ; .