I have a strange problem when I try to sort vector of custom object. I have this code:
class Chromosome {
public:
Chromosome(int c_w);
void setFitness(double fit);
double getFitness() const;
};
and compare function:
bool compareChromosomes(const Chromosome* l, const Chromosome* r) {
return l->getFitness() <= r->getFitness();
}
I create the vector of chromosome: vector<Chromosome*> popv; and I add some chromosomes.
when I try to sort the vector with sort(popv.begin(), popv.end(), compareChromosomes);
this is the result:
BEFORE SORT:
cromosoma 0: 0.205595
cromosoma 1: 0.370121
cromosoma 2: 0.363655
cromosoma 3: 0.363655
cromosoma 4: 0.858721
cromosoma 5: 0.192359
cromosoma 6: 0.582279
cromosoma 7: 0.202899
cromosoma 8: 0.205105
cromosoma 9: 0.187058
AFTER SORT
cromosoma 0: -0.474942
cromosoma 1: 0.187058
cromosoma 2: 0.192359
cromosoma 3: 0.202899
cromosoma 4: 0.205105
cromosoma 5: 0.205595
cromosoma 6: 0.363655
cromosoma 7: 0.363655
cromosoma 8: 0.370121
cromosoma 9: 0.582279
where is the problem?