Comment puis-je surcharge le comparer opérateur pour un ensemble de paires?

Comment puis-je la surcharge et passer un < (moins de) comparateur à un ensemble de paires d'entiers? Voici mon code actuel:

class A{
public:
    typedef std::pair<int, int> pair_type;  

    bool operator<(const pair_type& a, const pair_type& b){ 
        if (a.first < b.first) return true;
        else if ( (a.first == b.first) && (a.second < b.second) ) return true;
        else return false;
    }

private:
    std::set< pair_type > edge_;
};

Si j'essaie de compiler ce code, j'obtiens l'erreur suivante:

error: 'bool A::operator<(const pair_type&, const pair_type&)' must take exactly one argument

Comment puis-je résoudre ce problème?

InformationsquelleAutor Pippi | 2013-02-28