Dynamiskt tilldelade matriser är ett yteffektiva sätt att lagra variabla mängder data i C + + . De är effektivt organiserade och erbjuder fördelar i både hastighet och total minnesanvändning konsumeras av datastruktur . Processen för att ta bort ett index från en dynamisk array är ganska enkelt , men en av de downfalls av dynamiska arrayer är att hastigheten på de algoritmer som används för att lägga till eller ta bort element från arrayen långsam jämförs med andra data - lagring metoder ( t.ex. länkade listor , där lägga till och ta bort från arrayen kan göras i konstant tid ) . Den mest grundläggande algoritm för att ta bort ett index från en dynamisk array körs i linjär tid och är ganska lätt att förstå . Saker du behöver
Text Redaktör Compiler
Visa fler instruktioner
1
bestämma den slutgiltiga storleken på din modifierade arrayen . Ta bort en enda index kommer att minska den resulterande arrayen storlek med 1 :
int newSize = currentArraySize - 1 ,
2
Skapa en ny dynamisk array som kan hålla alla återstående heltal i den gamla matrisen. Använd den nya storleken att göra detta :
int * newArray = new int [ newSize ] ;
3
Skapa räknare för index i både de nya och gamla matriser . Dessa kommer att ökas separat som du kopierar innehållet i den gamla arrayen till den nya :
int oldArrayIndex = 0 ;
int newArrayIndex = 0;
4
Traverse båda arrayer :
för ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex ) katalog
{
//kod för att kopiera går här
}
5
Kopiera data från den gamla arrayen till den nya , uppräkning den nya arrayen s disken med den gamla arrayen s disk tills du når index för att radera . När du kommer till index för att radera , inte kopiera uppgifter och inte öka den nya arrayen disken . Använda för slingan från ovan :
för ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex ) katalog
{
om ( oldArrayIndex = indexToDelete ! )
{
newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ] ;
+ + newArrayIndex ;
}
}
Addera