Absturz bei STL::sort()

  • Hi!


    Hab wieder mal ein c++-Problem. Ev. weiß ja jemand von den erfahrenen Programmierern hier Rat.
    Ich habe folgendes im h-File deklariert:



    und irgendwo im c-File kommt dann folgender Code:



    Wenn ich sort weglasse funzt alles, aber sobald ich die sort-Zeile aktiviere stürzt das Programm ab. Was kann denn da der Fehler sein, denn kompilieren tut es ohne Warnung?
    Stimmt was am Operator nicht? Hab eigentlich noch nie einen Operator overloaded und bin auch nicht so vertraut mit der STL, aber ich sehe in dem Aufruf wirklich keinen Fehler und den Vector sollte das dann ja eigentlich problemfrei sortieren können oder?


    BTW, kann man eigentlich den mEvents.push_back(ev)-Aufruf eleganter (in einem Schwung) machen? Also ohne dass ich zuerst ev erstelle?


    Gruß und Danke scho mal,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -

  • Hi Brougs,


    nen boolscher Operator in C sollte sich schon boolsch verhalten ;D (true = kleiner, false = alles andere). Du implementierst hier kein strcmp :]. Desweiteren wird üblicherweise das Vergleichobjekt als Referenz übergeben, da sonst bei jedem Aufruf eine Objektkopie erzeugt wird.


    Also schreib den Operator mal als
    bool operator< (const tEvent &b)
    und lass ihn sich so verhalten, dann sollte es klappen ;)

  • Hi Lord!


    Danke für die Hilfe. Jetzt funzt das ganze wie erwartet. Ich habe mich mit der "Kleiner"-Funktion an die Sortierfunktion von qsort angelehnt ... aber das war eigentlich ein Blödsinn. ;)


    Gruß,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!