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

  FORUM HardWare.fr
  Programmation
  C++

  (aide) Surcharge d'operateur en c++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

(aide) Surcharge d'operateur en c++

n°1241191
xavier-
Futur président
Posté le 08-11-2005 à 13:51:15  profilanswer
 

:hello:
 
J'essaye d'utiliser la fonction de la STL binary_search() avec des objet d'une classe que j'ai crée (Individu)
 
La classe Individu contient 2 parametres, nom et prenom sous forme de chaine de caracteres
 
Voici le code :

Code :
  1. Individu *individu1 = new Individu("nom1","prenom" );
  2. Individu *individu2 = new Individu("nom2","prenom"
  3. Individu *individu3 = new Individu("nom3","prenom" );
  4. deque<Individu> d2;
  5. d2.push_back(*individu1);
  6. d2.push_back(*individu2);
  7. d2.push_back(*individu3);
  8. Individu *aRechercher = new Individu("nom2","prenom" );
  9. cout << binary_search(d2.begin() , d2.end() , *aRechercher) << endl;


 
A ce niveau on me demande de redefinir l'opérateur <, seulement je ne sais pas comment le redefinir. J'ai passé des heures à chercher sur google et je n'ai rien trouvé.
 
J'ai essayé ça mais sans succes :
 

Code :
  1. bool operator<(std::deque<Individu>::iterator debut , std::deque<Individu>::iterator fin , Individu i) {
  2.    ...
  3.    printf("operateur appelle\n" );
  4. }


 
Est ce que vous avez une solution ?
Merci par avance


Message édité par xavier- le 08-11-2005 à 13:53:59
mood
Publicité
Posté le 08-11-2005 à 13:51:15  profilanswer
 

n°1241194
chrisbk
-
Posté le 08-11-2005 à 13:53:24  profilanswer
 

Code :
  1. class Individu
  2. {
  3. ..
  4. bool operator < (const Individu & ) const
  5. {
  6.   //a toi d'ecrire le code de la comparaison entre deux individus
  7. }
  8. }

n°1241207
xavier-
Futur président
Posté le 08-11-2005 à 13:58:58  profilanswer
 

ca marche !!
je m'attendais pas a une reponse si rapide :)
 
merci 1000 fois

n°1243728
xavier-
Futur président
Posté le 11-11-2005 à 02:12:15  profilanswer
 

J'ai le même probleme avec des chaines de caracteres et je ne vois pas comment le résoudre :/
 

Code :
  1. bool operator<(string &s1 , string &s2) {
  2.   ...
  3. }
  4. int main() {
  5.   deque<string> d;
  6.   d.push_back("need" );
  7.   d.push_back("help" );
  8.   cout << binary_search(d.begin() , d.end() , "help" ) << endl;
  9. }


 
Ca ne marche pas (retourne 0), je ne comprend pas ça parait pourtant sensé :(
des idées ?


Message édité par xavier- le 11-11-2005 à 02:13:27
n°1243809
morph
Posté le 11-11-2005 à 12:34:10  profilanswer
 

la fonction binary_search nécessite que les éléments entre begin() et end() soient triés dans un ordre croissant, je ne sais pas si c'est le cas ici, mais si ce n'est pas le cas, elle explique ton résultat.

n°1243849
chrisbk
-
Posté le 11-11-2005 à 13:57:41  profilanswer
 

et accessoirement (meme si ce n'est pas la la cause de ton pb), ton prototype de surcharge manque de const


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

  (aide) Surcharge d'operateur en c++

 

Sujets relatifs
AIDE creation site Good IDEAModéliser XML à l'aide de UML
ListBox : Besoin d'aide ![resolu][PHP] extraction d'un operateur dans une string
aide pour phpwebgalleryaide sur une macro
aide pour login en php[debutant] [swing] bulle d'aide à la eclipse
Besoin d'aide pour un petit prog![Debutant]besoin d'aide pour dessiner dans un JPanel
Plus de sujets relatifs à : (aide) Surcharge d'operateur en c++


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