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 :

convertir une fonction en predicat


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 17
    Points : 11
    Points
    11
    Par défaut convertir une fonction en predicat
    Bonjour,
    Je cherche un moyen de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        lItEnd = std::remove_if( lString.begin(), lString.end(), std::isdigit() );
    cela dit std::isdigit() n'est pas un predicat et cela ne compile pas. Je vous demande si on peut trouver un adaptater de function en predicat ?

    Merci
    -Sebastien

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    J'ai trouve qu il faut utiliser l'adaptor dans le namespace "std".
    Il existe l'equivalent pour les methodes membres de classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mem_fun_t() et mem_fun_ref_t().
    cela donne au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    std::remove_if( lString.begin(), lString.end(), std::ptr_fun(isdigit) );
    Par contre j'ais du utilise isdigit() au lieu de std::isdigit() car je n ai pas reussit a faire fonctionner les adoptor sur des membres de namespace.

    Si vous avez une idee.
    Merci
    -Sebastien

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Points : 307
    Points
    307
    Par défaut
    Tu n'as pas du inclure le bon header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <cctype>
    #include <algorithm>
    #include <list>
     
    int main()
    {
        std::list<char> toto;
        std::remove_if(toto.begin(), toto.end(), std::isdigit);
    }
    fonctionne parfaitement.

    Si tu commences à jouer avec ce genre de choses, regarde aussi de côté de boost::bind

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

Discussions similaires

  1. Convertir une fonction sur VBA
    Par maymou27 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/06/2012, 12h18
  2. Convertir une fonction SI en language VBA
    Par el_meddeb dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/09/2011, 14h19
  3. Convertir une fonction matlab
    Par hm1ch dans le forum MATLAB
    Réponses: 10
    Dernier message: 05/12/2007, 16h57
  4. [intfilt] Convertir une fonction MATLAB en language C
    Par sandball22 dans le forum MATLAB
    Réponses: 10
    Dernier message: 10/04/2007, 16h06
  5. Convertir une liste en prédicat
    Par Myrkvid dans le forum Prolog
    Réponses: 2
    Dernier message: 10/11/2006, 09h26

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