Problem mit Vektoren (Sortieren)



  • class Test {
    private:
    int SortVal1 ;
    int SortVal2 ;
    //Verschiedene Werte
    
    public:
    //Verschiedene Funktionen
    } ;
    

    Die ganze klasse ist jetzt in eine vector-liste implementiert:

    vector<Test *> TestList
    

    funktioniert bisher auch... ABER!
    jetzt will ich das ganze nach werten innerhalb von class Test sortieren.
    wie bekomme ich jetzt die funktion std::sort()?

    std::sort(TestList.begin(), TestList.end())
    

    sortiert meiner meinung nach nach den Zeigerwerten...
    ich will aber nach den werten SortVal1/SortVal2 sortieren...
    wie bekomm ich das hin?



  • ich antworte mir einfach mal selber 😃
    hab ne lösung gefunden...

    man muss eine funktion definieren, die die beiden listenelemente vergleicht

    bool Compare(Test * a, Test * b) {
    //Elemente vergleichen und true/false zurückliefern
    }
    

    und das ganze wird dann so aufgerufen

    std::sort(TestList.begin(), TestList.end(), Compare/*ACHTUNG: ohne klammern*/)
    


  • Das nächste mal bitte im richtigen Forum posten.



  • ich hab doch im c++-forum gepostet oder?
    was ist daran denn nicht ok?



  • C++/CLI mit .NET FAQ/Archiv
    C++ mit .NET? C++ mit WinForms? Nennt sich C++/CLI, oder in der früheren Version Managed C++. Programmierung des .NET-Frameworks mit C++, oder Fragen zu den Erweiterungen von C++/CLI mit dem Visual Studio.

    C++ FAQ/Archiv
    Fragen zu bestimmten Funktionen und Abläufen in C++ (nach dem ISO-Standard), damit man mal erfährt, was pure virtual bedeutet, oder wie das mit den Templates und der STL geht. Bitte keine Fragen zu Windows/Linux-Programmierung hier posten!



  • danke 🙂
    hätt ich vielleicht lesen sollen...


Anmelden zum Antworten