begin process at 2012 05 30 19:00:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Tri d'objets avec qsort.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tri d'objets avec qsort.

samedi 27 mars 2004 à 19:03:07 | Tri d'objets avec qsort.

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);
samedi 27 mars 2004 à 21:23:53 | Re : Tri d'objets avec qsort.

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.


Cette discussion est classée dans : void, comparaison, scores, objets, qsort


Répondre à ce message

Sujets en rapport avec ce message

Affichage d'une video grace aux objets COM [ par matge ] BonjourJ'aimerais lire une video MPEG dans une MFC.Pour cela j'ai choisit les objets COM. Voila ce dont je dispose:J initie la librairie COM dans: On void comparaison [ par yopia ] voila le principe g une liste de pointeurs (void*)comme ca on peut mettre nimporte quoi dans cte liste.le pb : comment faire pour comparer 2 élément e comparaison entre 2 fonctions [ par cyss ] Est-ce que ces 2 fonctions sont equivalentes?void f1(char *t){    if (t!=0)    {        while(*t!=0)        {            cout            t++;        } Pointeur de fonction membre de classe dérivé en paramètre de fonction de classe mère [ par Fituza ] Bonsoir (encor moi c'est la dernière promis :D), je souhaiterai pouvoir passer la fonction QueryList de ma classe Client en paramètre de la fonction R fonction fread() [ par cacoucatatonique ] salut a tous, et oui c'est encore moi mais bon javoue que ca me donne du fil a retordre.voila je suis en train de faire un programme qui doit ecrire d recherche objets pour builder 6 [ par roindesbois ] je recherche désespérement des objets ( potentiometres, switch, voyant, vu metre ) très réalistes pour développerune console de mixage sous builder 6 besoin d'aide sur un programme de calcul de moyenne [ par Eaglevmt4 ] bonjour a tous je débute en programmation, je suis en première année de bts iris et j'ai un petit programme a rendre mais j'avoue avoir pas mal de dif Problème de tabeau dans un code orienté objet [ par Guiiil ] Bonsoir, je débute actuellement en C++ orienté objet et je suis bloqué avec ce programme qui doit réaliser un tableau d'élèves, prendre leur moyenne e A "friend" de B et B "friend" de A ->probleme de compilation [ par davypillet ] Bonjour, J'essaye de complier deux classe qui doivent être l'ami l'une de l'autre, c'est à dire quelque chose comme class A{ A::A(); A::~A();  v conjugaison en c++ [ par abdelali62 ] Bonsoir tt le monde c'est mon premier programme en c++ j'ai trouve une difficulter a implante le code de la fonction main mais je vais pas besser les


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales