Bonjour,
Je voudrais créer un container de type STL set avec une particularité:
la fonction de comparaison fait référence à une variable privée représentant un état interne. Pour simplifier au maximum, il s'agit d'un set de doubles, mais la comparaison entre deux doubles n'est pas celle par défaut, mais dépend d'une "origine" (qui est paramétrable) et qui intervient comme suit:
Je sais qu'on peut se créer une classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 bool less_than(double d1, double d2){ return fabs(d1 -_origine)< fabs(d2 - _origine); }
mais je ne sais pas exploiter cette classe pour la création de mon ensemble
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class origin_comp{ public: origin_comp(double o):_origine(o){} bool operator()(double d1, double d2){return fabs(d1 -_origine)< fabs(d2 - _origine); private: double _origine; };
car mon compilateur rejette
merci de votre attention
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 origin_comp oc(1.0); set<double, oc1>s1;
Partager