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.