ciao.
Ho utilizzato un function object per fare il sort di un array di Centity in base a 3 proprietà della classe stessa:
Il problema è che ho risultati diversi se cambio l'ultimo return suppongo sia per causato dal fatto che non considero i dati uguali ==.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!!! } };
come si fa a gestire questi casi?
grazie.

Rispondi quotando