Funktion für Arrays (löschen von Elementen)

peter333

Erfahrenes Mitglied
Hallo zusammen,

gibt es eine fertige Funktion, um das erste Element aus einem Array zu löschen, so dass alle anderen Elemente nachrücken?

LG Peter
 
Zuletzt bearbeitet:
Hm also nimm doch einfach einen dynamischen Container?! Sonst musst du wohl sowas von wegen folgendem machen:
C++:
type** ptr_array = new type*[size];
type** ptr_end = ptr_array + size;
for (type** ptr_it(ptr_array); ptr_it != ptr_end; ++ptr_it)
    *ptr_it = new type(/*...*/);
damit hast du ja erstmal nen array von objekten aufm heap ... das is soweit ganz praktisch und kannst jetzt dann hingehen und einfach mit std::rotate die elemente nach vorne schieben
C++:
std::rotate(ptr_array, ptr_array + 1, ptr_end);
kannst dann ja einfach wieder mit delete das letzte element löschen und größe anpassen ... aber std::list wäre hier einfach sinnvoller :D
 
Also wenn es wirklich sein muss, und die Reihenfolge keine Rolle spielt, dann kannst du doch einfach das letzte Element nach vorne setzen :) .
 
Hi,

jenachdem was du Verwalten speichern möchtest in deinem Array, würde sich eine Liste anstelle des Arrays anbieten, da gibt es die verschiedensten Funktionen zu (u.a. löschen vorne, hinten, zwischendrin....anfügen vorne, anfügen hinten...etc)
 
Eine Möglichkeit wäre auch, dass du als Referenzpunkt nicht das erste Element im Array nimmst, sondern das Letzte, da da ja das in diesem Falle invariant ist (oder willst du auch wieder neue Felder hinten anfügen?). Dann kannst du das erste freigeben und die Grösse dekrementieren, aber den Schluss lässt du ja damit unberührt, damit bleiben deine Endezeiger (ausser du löschst das letzte Element) grundsätzlich unberührt.
 
Zurück