begin process at 2008 07 05 00:19:09
1 204 997 membres
512 nouveaux aujourd'hui
14 118 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Tri d'objets avec qsort. [ Archives / Au secours ] (Tazrael)

Tri d'objets avec qsort. le 27/03/2004 19:03:07

Tazrael
Hum, voilà je souhaite trier un tableau d'objets avec qsort. Ici les objets sont des scores, et on y accède via un accesseur. Le problème c'est que la fonction de comparaison utilisée par qsort prend en param deux void *. Ma question comment les caster en mon objet score pour que la comparaison ce fasse justment sur les scores? Ci-joint le code (faux) de ma fonction de comparaison :

int
CWHof::compareScores (const void *score1, const void *score2)
{
unsigned s1 = *(CHof *)score1->getScore(), s2 = *(CHof *)score2->getScore();

//Comparaison de s1 et s2.
if (s1 < s2)
return -1;
else if (s1 == s2)
return 0;
else //s1 > s2
return 1;
}

Merci d'avance.

Tazrael

ps : voici la ligne d'appel à qsort :

qsort (m_scores, m_nbEntreesScores, sizeof (m_scores[0]), compareScores);

Re : Tri d'objets avec qsort. le 27/03/2004 21:23:53

Hylvenir
si tu utilises des objets dont tu fais du C++,
si tu fais du C++, tu peux utiliser sort qui est plus rapide.

sinon pourquoi pas un simpe : return ( s1 - s2 );

le problème pourrait (vient?) des '*' en trop.
soit une ligne:
return ((CHof *)score1)->getScore() - ((CHof *)score2)->getScore();

devrait corriger ton problème (je serais étonné que getScore()
te renvoie un pointeur ;-) )

PS: l'appel correct pour un pointeur sur tableau
c'est &m_scores[0] mais c'est pas très grave.

PS : sauf erreur de ma part.


Classé sous : void, comparaison, scores, objets, qsort

Participer à cet échange

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS