Wie kann ich die überlastung der Vergleichsoperator für eine Menge von Paaren?

Wie kann ich die überlastung und pass ein < (weniger als) Komparator, um eine Menge von Paaren von ganzen zahlen? Dies ist mein Aktueller code:

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_;
};

Wenn ich versuche, um diesen code zu kompilieren, dann bekomme ich die folgende Fehlermeldung:

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

Wie kann ich es beheben?

std::pair hat bereits eine entsprechende operator<.

InformationsquelleAutor Pippi | 2013-02-28

Schreibe einen Kommentar