ciao.
Ho utilizzato un function object per fare il sort di un array di Centity in base a 3 proprietà della classe stessa:
codice:
bool operator()(CEntity* pEnt1, CEntity* pEnt2)
{
//ritorna 1 se la sequenza di controllo trova minore, con priorità first, second, third
//CVector v1, v2;
//carico i valori delle coordinate per tipo elemento dalle due entità pEnt1 e pEnt2
//che mi vengono passate dal sort e dal container
//le inserisco nei due vettori v1 e v2
//SetVars(&v1, &v2, pEnt1, pEnt2);
double dFirst1, dSecond1, dFirst2, dSecond2, dThird1, dThird2;
dFirst1 = pEnt1->GetPointRif().GetValue(m_nFirst);
dFirst2 = pEnt2->GetPointRif().GetValue(m_nFirst);
dSecond1 = pEnt1->GetPointRif().GetValue(m_nSecond);
dSecond2 = pEnt2->GetPointRif().GetValue(m_nSecond);
dThird1 = pEnt1->GetPointRif().GetValue(m_nThird);
dThird2 = pEnt2->GetPointRif().GetValue(m_nThird);
if( dFirst1 < dFirst2)
return true;
else if (dFirst1 > dFirst2)
return false;
else if (dSecond1 < dSecond2)
return true;
else if (dSecond1 > dSecond2)
return false;
if (dThird1 < dThird2)
return true;
if (dThird1 > dThird2)
return false;
return false;//cambiando questo ho risultati diversi!!!
}
};
Il problema è che ho risultati diversi se cambio l'ultimo return suppongo sia per causato dal fatto che non considero i dati uguali ==.
come si fa a gestire questi casi?
grazie.