Dynamisch toegewezen arrays zijn een ruimte - efficiënte manier van het opslaan van variabele hoeveelheden gegevens in C + + . Ze zijn efficiënt georganiseerd en bieden voordelen in zowel de snelheid en de algehele memory footprint verbruikt door de datastructuur . Het proces van het verwijderen van een index van een dynamische matrix is vrij eenvoudig , maar een van de ondergang van dynamische arrays is dat de snelheid van het algoritme gebruikt om elementen van de array toevoegen of verwijderen traag is vergeleken met andere data - opslag methoden ( zoals gekoppelde lijsten , waarbij het toevoegen en verwijderen van de array kan op constante tijd ) . De meest fundamentele algoritme voor het verwijderen van een index van een dynamische reeks loopt in lineaire tijd en is vrij eenvoudig te begrijpen . Wat je nodig hebt tekst editor Compiler Toon Meer Aanwijzingen 1 Bepaal de uiteindelijke grootte van uw gewijzigde array. Het verwijderen van een enkele index zal de resulterende array size verminderen met 1 : int newSize = currentArraySize - 1 ; kopen van 2 Maak een nieuwe dynamiek array die alle van de resterende getallen kan houden in de oude array. Gebruik het nieuwe formaat om dit te doen : int * newArray = new int [ newSize ] ; 3 Maak tellers voor indexen in zowel de nieuwe als oude arrays . Deze zullen afzonderlijk worden opgehoogd als u de inhoud van de oude array naar de nieuwe te kopiëren : int oldArrayIndex = 0 ; int newArrayIndex = 0 ; 4 Traverse beide arrays : voor ( oldArrayIndex = 0 ; oldArrayIndex < currentArraySize ; + + oldArrayIndex ) op Twitter { //code te kopiëren gaat hier } Kopieer data 5 van de oude array om de nieuwe , oplopende teller van de nieuwe array met teller van de oude array totdat u de index te verwijderen bereiken . Wanneer u de index te bereiken om te verwijderen , geen gegevens te kopiëren en niet verhoog de nieuwe array teller . Met behulp van de lus van boven : voor ( oldArrayIndex = 0 ; oldArrayIndex < currentArraySize ; + oldArrayIndex + ) op Twitter { if ( oldArrayIndex = indexToDelete ! ) < Br > { newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ] ; + newArrayIndex + ; } } < br >
|