führende nullen in einer deque entfernen



  • Hallo

    ich möchte in meinem programm eine funktion, um alle führenden nullen aus einer deque zu entfernen, schreiben. diese enthält bei mir nur int-werte (genauer gesagt nur einzelne ziffern).
    mein intuitiver ansatz liefert mir folgende funktion:

    deque<int> nullenentfernen (deque<int> a)
    {
        while (a.front()==0) a.pop_front();    //solange nullen am anfang sind, rausschmeißen
        if (a.empty()) a.push_front(0);        //falls a nur aus nullen bestand, wurde eine zuviel entfernt
        return a;
    }
    

    soweit funktioniert diese funktion auch wie gewünscht, nur bei wenn die eingabe aus mehreren nullen (und sonst nichts) besteht, stürzt das programm ab. komischerweise funktionierts aber für a=0. nur für a=00000 oder so nicht.

    Process returned -1073741819 (0xC0000005)

    diese fehlermeldung erhalte ich immer.

    hat einer von euch eine ahnung wieso das für genau diesen fall nicht funktioniert? ich bin mittlerweile am ende meiner weisheit angelangt 😕


  • Mod

    Du solltest deine Schleife auch dann abbrechen lassen, wenn a leer ist.



  • ui danke das wars.
    a.front() auf eine leere deque anzuwenden liefert wohl nur datenmüll (hätte ich theoretisch auch selbst drauf kommen können)

    jetzt kann das wochenende beginnen 😃


Anmelden zum Antworten