IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Aide avec find_if


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Par défaut Aide avec find_if
    Après s'être inspiré d'un ancien post sur le forum developpez.com j'ai tenté d'utiliser find_if.

    Mais j'ai quelques soucis...

    Voici ce que je veux faire :

    Detecter un noeud dans une liste d'ojbet "Emprunteur" grâce à un ID stocké dans cette objet.

    Voici mon "code" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void HashT::remove(string itsPrenom, string itsNom) // Suppression d'une adhérent par nom et prenom
    {
    	list<Emprunteur>::iterator empIterator;
    	int id = HashFX(itsNom + itsPrenom);
    	empIterator = find_if(EmprunteurList.begin(), EmprunteurList.end(), MaClassEgal(id));
     
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #pragma once
    #include "Emprunteur.h"
     
    struct MaClassEgal
    {
        MaClassEgal(int n)
    	{
    		nb = n;
    	}
     
        bool operator ()(const Emprunteur& m) const
        {
    		return m.GetId() == nb;
        }
     
    private :
     
        int nb;
    };
    Merci pour votre aide

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Ça a l'air correct, quel est le problème ?

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Par défaut
    La voici : error C2275: 'EmprunteurList'*: utilisation non conforme de ce type comme expression

    Voici la définition dans le .h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    typedef list<Emprunteur> EmprunteurList;
     
    ....
     
     
    private:
    	EmprunteurList **mTab;
    	unsigned int mTabSize;
    	unsigned int mnElement
    Je ne pense pas que ca vient de là étant donné que j'arrive à ajouter des éléments dans la liste... donc dans le tableau de pointeur sur liste Emprunteur (pfiou:p)

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EmprunteurList.begin(), EmprunteurList.end()
    EmprunteurList est un type, pas une variable.

    A part ça, un list<>** ... c'est vraiment nécessaire ?

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Par défaut
    Si ca ne tenait qu'a moi : non !
    Je dois réaliser une table de hachage externe donc je vais devoir stocker les informations dans une liste chainée à l'indice du tableau modulo ma taille utile.

    Sinon tout fonctionne très bien maintenant !
    Merci pour votre aide !

    PS : je suis ouvert à toutes critiques de mon code, donc n'hésitez pas s'il existe une meilleur solution que <> ** ! Comprendre ses erreurs c'est apprendre

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Par défaut
    Cela dit, j'ai encore une question au sujet du find_if !
    Comment savoir s'il a vraiment trouvé la valeur recherchée ?
    Car find_if return last s'il n'a rien trouvé mais si je n'ai qu'un element dans ma liste : first = last, donc je risque d'avoir des erreurs....

  7. #7
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Laurent Gomila
    EmprunteurList est un type, pas une variable.
    Laurent a trouvé ton problème !

  8. #8
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Par défaut
    to the first element in the range for which the application of pred to it does not return false (zero).
    If pred is false for all elements, the function returns last. www.cplusplus.com
    Tu en es sur pour le end ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide avec Regexp::Assemble
    Par mobscene dans le forum Modules
    Réponses: 5
    Dernier message: 11/04/2007, 12h39
  2. [ASA] J'ai besoin d'aide avec sybase et vb6 svp !!
    Par tibo830 dans le forum SQL Anywhere
    Réponses: 7
    Dernier message: 12/05/2006, 10h09
  3. Besoin d'aide avec TinyXML
    Par Clad3 dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 15/08/2005, 18h20
  4. Réponses: 2
    Dernier message: 29/08/2003, 17h52
  5. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo