comparaison avec état pour une set
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:
Code:
1 2 3
| bool less_than(double d1, double d2){
return fabs(d1 -_origine)< fabs(d2 - _origine);
} |
Je sais qu'on peut se créer une classe
Code:
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;
}; |
mais je ne sais pas exploiter cette classe pour la création de mon ensemble
car mon compilateur rejette
Code:
1 2
| origin_comp oc(1.0);
set<double, oc1>s1; |
merci de votre attention