Dynamisch zugewiesen Arrays sind ein Raum - effizientes Mittel zur Speicherung variable Mengen von Daten in C + +. Sie sind effizient organisiert und bieten Vorteile in Geschwindigkeit und Speicherbedarf insgesamt durch die Datenstruktur verbraucht . Das Löschen eines Index von einer dynamischen Array ist recht einfach , aber einer von Übertretungen der dynamischen Arrays ist , dass die Geschwindigkeit der Algorithmen zum Hinzufügen oder Entfernen von Elementen aus dem Array langsam auf andere Datenspeicher Methoden (wie im Vergleich verketteten Listen , in denen das Hinzufügen und Löschen von der Anordnung kann in konstanter Zeit durchgeführt werden) . Der grundlegende Algorithmus zum Entfernen eines Index aus einem dynamischen Array läuft in linearer Zeit und ist ziemlich einfach zu verstehen. Things You
Texteditor
Compiler
brauchen anzeigen Weitere Anweisungen
1
Bestimmen Sie die endgültige Größe des modifizierten Array. Entfernen eines einzelnen Index wird das resultierende Array-Größe von 1 zu reduzieren :
int newSize = currentArraySize - 1;
2
Neues dynamisches Array , dass alle übrigen Zahlen in halten kann das alte Array. Verwenden Sie die neue Größe , dies zu tun :
int * newArray = new int [ newSize ] ;
3
Erstellen Zähler für beide Indizes in den neuen und alten Arrays. Diese werden separat erhöht werden, wie Sie den Inhalt des alten Arrays in das neue kopieren :
int oldArrayIndex = 0;
int newArrayIndex = 0;
4
Fahren beide Arrays :
für ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex )
{
//Code zu kopieren geht hier
< p >}
5
Kopieren von Daten aus dem alten Array in das neue , Erhöhen des neuen Arrays Zähler mit dem alten Arrays Zähler , bis Sie den Index löschen zu erreichen. Wenn Sie den Index zu erreichen, um zu löschen, kopieren keine Daten, und nicht erhöht das neue Array Zähler . Mit der for-Schleife von oben:
für ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex )
{
if ( oldArrayIndex = indexToDelete ! )
{
newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ] ;
+ + newArrayIndex ;
} }
< br >