Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako odobrať indexu v dynamickej pole celých čísel pomocou C + +

Dynamicky alokovanej polia sú priestorovo efektívny spôsob ukladania variabilné množstvo dát v C + + . Sú efektívne organizovaná a ponúkajú výhody ako v rýchlosti a celkovej nároky na pamäť spotrebovanej dátové štruktúry . Proces odstránenie indexu z dynamického poľa je veľmi jednoduchý , ale jeden z prepadov dynamických polí je , že rýchlosť algoritmov používaných na pridať alebo odstrániť prvky z poľa je pomalý v porovnaní s inými metódami pre ukladanie dát ( napr. spojové zoznamy , v ktorých pridávanie a mazanie z poľa možno vykonať v konštantnom čase ) . Najviac základný algoritmus pre odstránenie indexu z dynamického poľa beží v lineárnom čase a je pomerne ľahké pochopiť . Veci , ktoré budete potrebovať klipart textový editor klipart Compiler
Zobraziť ďalšie inštrukcie Cestuj 1

Určte konečnú veľkosť vášho upraveného poľa . Odstránenie jeden index zníži výslednú veľkosť poľa o 1 :

int newSize = currentArraySize - 1 ;
2

Vytvoriť nový dynamického poľa , ktoré môže držať všetky zostávajúce čísel v stará poľa . Použite nový rozmer , ako to urobiť :

int * newArray = new int [ newSize ] ;
3

Vytvorte čítača pre indexy v oboch nových a starých poliach . To bude zvýšený oddelene , ako si skopírovať obsah starého poľa do novej :

int oldArrayIndex = 0 ;

int newArrayIndex = 0 ;
4

Traverse oboch poliach :

pre ( oldArrayIndex = 0 ; oldArrayIndex < currentArraySize ; + + oldArrayIndex )

{

//Kód na skopírovanie ide tu

}
5

Kopírovanie dát zo starého poľa do novej , zvyšovanie počítadla nového poľa je pri pulte starého Array , kým sa nedostanete na index odstrániť . Keď sa dostanete do indexu odstrániť , nekopírujte dát a nie zvyšovať nové počítadlo poľa . Použitie pre slučky zhora :

pre ( oldArrayIndex = 0 ; oldArrayIndex < currentArraySize ; + + oldArrayIndex )

{

if ( ! OldArrayIndex = indexToDelete )

{

newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ] ;

+ + newArrayIndex ;

}

}


Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené