Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
903 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] trier un vector avec une fonction de comparaison

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] trier un vector avec une fonction de comparaison

n°15607
z0rglub
Posté le 23-02-2001 à 14:20:33  profilanswer
 

salut,
j'ai des vector qui représentent des activités... avec des dates définies dans des structures :  
struct Date
{    int numero_semaine;
     int numero_jour;
     int heure;
}
 
et je voudrais trier les activités du vecteur par ordre chronologique en utilisant l'algorithme sort de la STL :
 
genre :
vector<activités> sports;
...
sort(sports.begin(), sports.end(), fonction_de_comparaison());
 
Mais ça ne semble pas marcher. SI qqun peut m'aider c'est cool, je saurais faire autrement sans utiliser la STL et le sort mais j'aimerais savoir l'utiliser car ça peut être pratique.
Merci à vous

mood
Publicité
Posté le 23-02-2001 à 14:20:33  profilanswer
 

n°15615
verdoux
And I'm still waiting
Posté le 23-02-2001 à 14:53:13  profilanswer
 

Qu'est ce qui marche pas ?

n°15616
z0rglub
Posté le 23-02-2001 à 15:16:52  profilanswer
 

ben j'arrive pas à lui faire comprendre d'utiliser la fonction de comparaison.
Mais avec l'aide de visual C++ je viens de trouver des trucs interessants :
il faudrait redéfinir des fonctions :
bool operator==(activités & a1, activités & a2)
et  
bool operator<(activités & a1, activités & a2)
 
mais je dois les déclarer en friend dans la classe activités car elles utilisent a1.date->heure par exemple
 
Je bosse dessus pour le moment

n°15620
verdoux
And I'm still waiting
Posté le 23-02-2001 à 15:28:39  profilanswer
 

Oui soit tu définis un opérateur de comparaison pour les objets activités (et dans ce cas, plus besoin de fonction dans l'appel sort), soit tu définis un objet fonction de comparaison que tu mets dans l'appel sort.
Le troisième argument de sort n'est une fonction mais un oject fonction (ou foncteur).

 

--Message édité par Verdoux--

n°15636
chadenat
Posté le 23-02-2001 à 16:15:48  profilanswer
 

Zorglub c'est pas bien de faire sauter les cours de réseaux pour finir son TP de C++


---------------
http://www.chadenat.forez.com
n°15656
z0rglub
Posté le 23-02-2001 à 17:44:58  profilanswer
 

je sais mais ct urgent, et j'ai rien compris au cours précédent !
Je te jure que je viens mardi prochain. :jap:

n°1991881
kikoho
Posté le 10-05-2010 à 16:34:45  profilanswer
 

salut  
j'ai une classe  point défini comme suit:
float x;
float y;
std::list<point*>* list_point;
je souhaite trier list_point du point le plus proche au point le plus loin du point a qui appartient list_point.
est ce possible de le faire directement avec une fonction de comparaison qui utiliserai le x et le y .
Pour l'instant je n'ai reussi ce tri qu'en créant une nouvelle classe comprenant le pointeur vers le point et la distance au point.
 
globalement je souhaite avoir une fonction de comparason qui ressemblerai à ca(pour l'instant le compilateur n'accepte pas que j'utilise x et y dans la fonction de comparaison) :
 
struct MyGreater2 {
 bool operator() (const point* c1,const point* c2)
 {
float dist_c1=(c1->x-x)*(c1->x-x)+(c1->y-y)*(c1->y-y);
float dist_c2=(c2->x-x)*(c2->x-x)+(c2->y-y)*(c2->y-y);
 return dist_c1 < dist_c2;
 };
};


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] trier un vector avec une fonction de comparaison

 

Sujets relatifs
VB6: fonction permettant de récupérer l'adresse IP[C] une fonction transformant un int en char *
Erreur fonction PHP strposPHP Fonction Mail... Config ??
Problème sur une fonction C++ de base...[php] il faut un .dll en plus pour la fonction crypt() ?
java: fonction eval()du php dans une fonction javascript ?
[C] C koi la fonction pour exécuter un programme ? 
Plus de sujets relatifs à : [C++] trier un vector avec une fonction de comparaison


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR