greater<> Zeiger statt Referenzen übergeben



  • Hallo Forum,

    ich habe folgendes Problem:
    Ich habe Zeiger auf Elemente einer Klasse A in ein std::deque gepackt:

    class A {
        // Irgendwelche Methoden
    };
    
    typedef std::deque<A*> AList;
    

    Diese möchte ich nun mit std::sort sortieren und zwar mit dem greater<A>-Funktionsobjekt.

    Jetzt erwartet dieses Funktionsobjekt aber Referenzen auf die Klasse A und keine Zeiger.

    Wie kann ich dem greater<A>-Objekt denn Zeiger für meine Klasse A übergeben?


  • Mod

    Da wird es wohl das einfachste sein, eben schnell ein greater Funktionobjekt zu schreiben, welches die übergebenen Objekte noch einmal dereferenziert.

    edit: Das hier sollte funktionieren, habe ich aber nicht getestet:

    template <class T> struct pgreater : binary_function <T*,T*,bool> {
      bool operator() (const T *x, const T *y) const
        {return (*x)>(*y);}
    };
    


  • Wie kann ich dem greater<A>-Objekt denn Zeiger für meine Klasse A übergeben?

    Gar nicht. Falsche Frage. Versuch's nochmal.


Log in to reply