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

SL & STL C++ Discussion :

[std::multiset] 2eme Parameter


Sujet :

SL & STL C++

  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut [std::multiset] 2eme Parameter
    hello,

    j aimerais avoir un multiset contenant des instances de structures triées en fonction d'un des champs de la structure en question (m_uiStateToStay).

    Le problème, est que je ne sais pas comment specifier le paramètre de comparaison (le 2eme). ???

    ma definition de la structure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct MonTypeDeStructure{
    MonTypePointeurDeFonction m_pFnct;
    LPVOID m_lParam;
    UINT m_uiStateToStay;
    UINT m_uiTimeToStay;
    };
    ma definition du multiset:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::multiset<MonTypeDeStructure,QuoiMettreICI> m_multiset;

  2. #2
    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
    Il faut soit définir un opérateur < pour ta structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    bool operator <(const MonTypeDeStructure& s1, const MonTypeDeStructure& s2)
    {
        return s1.m_uiStateToStay < s2.m_uiStateToStay;
    }
     
    std::set<MonTypeDeStructure> m_multiset;
    Soit définir un foncteur qui fait la comparaison :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    struct OrderByStateToStay
    {
        bool operator ()(const MonTypeDeStructure& s1, const MonTypeDeStructure& s2) const
        {
            return s1.m_uiStateToStay < s2.m_uiStateToStay;
        }
    };
     
    std::set<MonTypeDeStructure, OrderByStateToStay> m_multiset;

  3. #3
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    donc un foncteur c'est juste le fais d'avoir seuleument la redefinition de l'operateur () (parenthèse) dans une classe/strcuture ?

  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
    Citation Envoyé par ZaaN
    donc un foncteur c'est juste le fais d'avoir seuleument la redefinition de l'operateur () (parenthèse) dans une classe/strcuture ?


    Qu'est-ce qu'un foncteur

  5. #5
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    autre question sur le meme sujet.

    toujours dans le meme cas, lorsque je desire utiliser la fonction multiset::find,

    je peux passer sans autre la clé MonTypeDeStructure.m_uiStateToStay à la fonction ?

    Il me semble que qqch doit manquer ? non ?? c'est meme sur car ja rrive pas a compiler !

  6. #6
    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
    Effectivement, il faut que tu passes un élément, donc une instance de MonTypeDeStructure.

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

Discussions similaires

  1. std::multiset et foncteur
    Par mazertys17 dans le forum C++
    Réponses: 9
    Dernier message: 14/04/2015, 11h57
  2. std MFC
    Par philippe V dans le forum MFC
    Réponses: 7
    Dernier message: 17/01/2004, 00h54
  3. Syntaxe PARAMETERS pour requête sous VBA
    Par GAGNON dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/11/2003, 11h39
  4. STL : std::set problème avec insert ...
    Par Big K. dans le forum MFC
    Réponses: 13
    Dernier message: 08/11/2003, 01h02
  5. Treeview : Erreur "Reference to variable or parameter..
    Par Tirlibibi dans le forum XMLRAD
    Réponses: 4
    Dernier message: 06/05/2003, 11h19

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