Array löschen!



  • Hi,

    wir haben in der Schule ein Projekt laufen, in dem ich die Aufgabe bekommen habe datensätze zu löschen.

    Zur Geschichte: Es handelt sich um ein Vereins Mitglieder verwaltungs Programm wo die adresse gespeichert wird. Die datensätze sollen bearbeitbar (Werte werden überschrieben) und löschbar sein (Wert werden gelöscht)

    Ich hab das problem das ich ziemlich ziemlich ziemlich 😕 wenig ahnung von C & C++ hab und mir der Lösunungsansatz für das Löschproblem fehlt.

    Ich weis das ich die Werte aus den Arrays löschen muss aber ich komm ums verrecken net drauf wie ich das anstellen soll. Ich hab den befehl delete[] gefunden. Was mich daran interesieren würde,

    wäre: wie ich jetzt sagen kann das er den gesamten datensatz-> also ca. 6 Werte löschen kann.

    Ich hoffe ihr könnt mir helfen

    greetz Mike



  • mit delete[] gibst du den Speicher wieder frei! Das kannst du nicht benutzen.

    Wenn es sich um ein normales Array handelt, wirst du um umkopieren nicht herumkommen (dazu kannst du std::memcpy aus dem cstring header benutzen). Wenn du ein std::vector benutzt, dann kannst du std::vector::remove nehmen



  • um mal den Originalposter nicht ganz aus den Augen zu verlieren: Wie sind denn deine Daten organisiert? Ich vermute als Array, aber allzuviel hast du darüber noch nicht verloren.
    Letztlich gibt es nur eine Möglichkeit, Elemente aus einem Array zu löschen. Nämlich, indem du alle Elemente die danach folgen um eins nach vorn aufrücken läßt und somit den vorher belegten Speicher überschreibst. Man kann das optimieren, indem man pro Element ein boolesches Flag vorsieht, mit dem man Elemente zum löschen markieren kann.
    Die Datenbank übergeht diese Sätze dann z.B. beim Suchen und Anzeigen.
    Später löscht man alle so markierten Elemente wie gesagt durch nach vorn kopieren des Restarrays.


Anmelden zum Antworten