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

  FORUM HardWare.fr
  Programmation
  C++

  Problème de tri de vecteur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de tri de vecteur

n°1694110
Saubin
Posté le 28-02-2008 à 10:46:37  profilanswer
 

Bonjour à tous,
 
Je souhaiterais trié un vecteur de Match selon leur date dans mon prog, la classe se compose comme ceci:
 

Code :
  1. class Match{
  2. private:
  3. string lieu;
  4. vector<Equipe*> Rencontre;
  5. Date Date_Rencontre;


 
Ensuite j'ai une classe Session comme ceci:

Code :
  1. class Session{
  2. vector<Match*> Tab_Match;
  3. vector<Equipe*> Tab_Equipe;


 
Et donc j'essaye de trier dans la classe Session le vecteur Tab_match en fonction de la date de ceux-ci.
J'ai donc déclarer une fonction de tri dans Match comme ceci:

Code :
  1. bool SortMatch(Match& M1, Match& M2)const{
  2.  return M1.Date_Rencontre.getDate()<M2.Date_Rencontre.getDate();
  3. }


la fonction getDate() me retourne une date de cette forme "1122007" pour une date qui correspond au 11/2/2007
 
la classe date est ainsi:

Code :
  1. class Date{
  2. private:
  3. string jour;
  4. string mois;
  5. string annee;
  6. friend Match;


 
Donc pour trier le vecteur Tab_Match dans ma classe Session il faut faire une fonction comme ceci:
 

Code :
  1. void sortMatchByDate(){
  2.  std::sort(Tab_Match.begin(), Tab_Match.end(), Tab_Match->SortMatch );
  3. }


Le dernier paramètre est faux et je ne vois pas comment faire...Pourriez vous m'aidez svp? Si il manque des bout de codes pour comprendre faîtes le moi savoir
 
Merci d'avance!


Message édité par Saubin le 28-02-2008 à 10:47:18
mood
Publicité
Posté le 28-02-2008 à 10:46:37  profilanswer
 

n°1694137
Joel F
Real men use unique_ptr
Posté le 28-02-2008 à 11:08:25  profilanswer
 

sort attend une fonction ou un foncteur de type :
 
bool (*)(const Date&,const date& )
 
Probleme : le membre SortMatch de la classe Date ont pour type :
 
bool (Date::*)(const Date&,const Date& )
 
Solution :
1/ rendre SortMatch static
2/ faire une classe de foncteur externe

n°1694152
Saubin
Posté le 28-02-2008 à 11:19:52  profilanswer
 

Joel F a écrit :

sort attend une fonction ou un foncteur de type :
 
bool (*)(const Date&,const date& )
 
Probleme : le membre SortMatch de la classe Date ont pour type :
 
bool (Date::*)(const Date&,const Date& )
 
Solution :
1/ rendre SortMatch static
2/ faire une classe de foncteur externe


"bool SortMatch(Match& M1, Match& M2)" est dans la classe Match je me suis peut être mal fait comprendre
 
Edit: En mettant SortMatch en static il me fait une erreur :
 
"error C2272: 'SortMatch' : modifiers not allowed on static member functions"
 
Edit2: J'ai rien dit il faut enlever le const, par contre dans l'apel de la fonction "void sortMatchByDate()" comment on met ça?


Message édité par Saubin le 28-02-2008 à 11:23:35
n°1694153
Joel F
Real men use unique_ptr
Posté le 28-02-2008 à 11:20:45  profilanswer
 

le probleme ets le même ;). JE reecris donc :
 
sort attend une fonction ou un foncteur de type :
 
bool (*)(const Date&,const date& )
 
Probleme : le membre SortMatch de la classe Date ont pour type :
 
bool (Match::*)(const Match&,const Match& )
 
Solution :
1/ rendre SortMatch static dasn Match
2/ faire une classe de foncteur externe

n°1694159
Saubin
Posté le 28-02-2008 à 11:25:45  profilanswer
 

J'ai donc dans ma classe match
 

Code :
  1. static bool SortMatch(Match& M1, Match& M2){
  2.  return M1.Date_Rencontre.getDate()<M2.Date_Rencontre.getDate();
  3. }


 
Et ensuite il faut que j'apelle cette fonction dans ma classe session qui se compose comme suit:

Code :
  1. class Session{
  2. vector<Match*> Tab_Match;
  3. vector<Equipe*> Tab_Equipe;


 
Et j'appelle la fonction de tri contenu dans Session:

Code :
  1. void sortMatchByDate(){
  2.  std::sort(Tab_Match.begin(), Tab_Match.end(), ??? );
  3. }


 
Et à la place des "???" faut lui passer la fonction mais comment?


Message édité par Saubin le 28-02-2008 à 11:26:40
n°1694233
Joel F
Real men use unique_ptr
Posté le 28-02-2008 à 12:19:07  profilanswer
 

Match::SortMatch

n°1694239
Taz
bisounours-codeur
Posté le 28-02-2008 à 12:22:46  profilanswer
 
n°1694255
Saubin
Posté le 28-02-2008 à 12:58:29  profilanswer
 

Joel F a écrit :

Match::SortMatch


Parfois je ne pense pas....

n°1694350
Joel F
Real men use unique_ptr
Posté le 28-02-2008 à 14:09:34  profilanswer
 

Taz a écrit :

t'as trop de patience JoelF


 
C'est mon coté prof qui ressort  :whistle:

n°1694355
Taz
bisounours-codeur
Posté le 28-02-2008 à 14:12:22  profilanswer
 

Joel F a écrit :


 
C'est mon coté prof qui ressort  :whistle:


vu son SortMatch et son Tab_match, ça marche toujours pas toutes façons.

mood
Publicité
Posté le 28-02-2008 à 14:12:22  profilanswer
 

n°1694381
Joel F
Real men use unique_ptr
Posté le 28-02-2008 à 14:28:12  profilanswer
 

j'avais même pas vu [:pingouino]

n°1694459
Saubin
Posté le 28-02-2008 à 15:55:01  profilanswer
 

Taz a écrit :


vu son SortMatch et son Tab_match, ça marche toujours pas toutes façons.


C'est bon ça marche, j'ai changé deux trois trucs, merci pour votre aide


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

  Problème de tri de vecteur

 

Sujets relatifs
Problème pour mettre mon site en ligne....Probleme avec la fonction mysql_connect
PROBLEME: Developpement avec un kit DK-51 BeckProblème de random en C++ [Résolu]
Problème d'actualisation des cellules sous excel[AJAX] Probleme d'acces ID liste chainé
problème de format sur VBAprobleme XSD - XML schema
Probleme de vecteurProblème pour modifier des éléments d'un vecteur
Plus de sujets relatifs à : Problème de tri de vecteur


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