Overloading do operador < com estruturas

_deXter

Power Member
Boas,

Pessoal, precisava de uma ajuda. Eu tenho uma estrutura com um int e um char, e tenho uma lista de elementos à qual quero aplicar a função sort.

Sei que preciso de fazer overloading do operador <, mas não sei como fazê-lo. Alguém me pode dar umas dicas?

Obrigado.
 
Acho que não me fiz entender muito bem...

Eu tenho algo estilo:

struct teste {
int n;
char c;
}

E depois tenho uma lista:
list<teste> lista

E agora quero organizar esta lista utilizando o sort (ex: lista.sort(qualquercoisa) ) fazendo um overloading do operador < . Não é possível fazer isto?
 
Suponho que estejamos a falar de c++.

Os argumentos do operador têm que ser objectos, não estruturas, como já foi dito.
Depois se estivermos a falar do algoritmo std::sort, a sintaxe é sort ( iterator begin, iterator end, functor comp).
Tens que fornecer ao sort o iterador a apontar para o inicio da lista de objectos e o iterador para o fim( ou da sublista que queres ordenar).

Em alternativa ao overload do operador <, podes criar uma função ( ou o operador () de uma classe de comparação) do tipo

bool comparador (objecto& a, objecto& b)

de modo que quando devolve true a ordem de a e b será inalterada, caso contrário a ordem é trocada, e fornecer esta função como terceiro parametro do sort.
 
Back
Topo