dynamisk allokerede arrays er et rum- effektive middel til lagring af variable mængder af data i C + + . De er effektivt organiseret og tilbyde fordele i både hastighed og overordnet memory fodaftryk forbruges af datastruktur. Processen med at slette et indeks fra en dynamisk array er ganske ligetil , men en af de downfalls af dynamiske arrays er, at hastigheden af de algoritmer, der anvendes til at tilføje eller fjerne elementer fra array er langsom i forhold til andre data -storage metoder (såsom hægtede lister , hvor tilføjelse og sletning fra arrayet kan gøres i konstant tid ) . Den mest grundlæggende algoritme til at fjerne et indeks fra en dynamisk vifte kører i lineær tid og er forholdsvis let at forstå. Ting du skal
Text editor
Compiler
Vis Flere Instruktioner
1
Bestem den endelige størrelse af din ændrede array. Fjernelse af en enkelt indeks vil reducere den resulterende array-størrelse med 1 : Hej
int newSize = currentArraySize - 1 ,
2
Opret en ny dynamisk array, kan holde alle de resterende tal i den gamle array. Brug den nye størrelse for at gøre dette : Hej
int * newArray = new int [ newSize ]
3
Opret skranker for indekser i både nye og gamle arrays. Disse vil blive forøget separat som du kopiere indholdet af den gamle array i det nye : Hej
int oldArrayIndex = 0;
int newArrayIndex = 0;
4
Traverse begge arrays : Hej
for ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex )
{
//kode til at kopiere går her
< p >}
5
kopiere data fra den gamle array til det nye , forøgelsen af den nye matrix skranke med den gamle matrix skranke , indtil du når indekset at slette. Når du når indekset til at slette, ikke kopiere data og ikke øg nyt array tælleren. Brug af for-løkken fra oven : Hej
for ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex )
{
if ( oldArrayIndex = indexToDelete !) < Br >
{
newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ]
+ + newArrayIndex ,
}
}
< br >