matrici allocate dinamicamente, sono un mezzo spazio - efficienti di stoccaggio quantità variabili di dati in C + + . Essi sono organizzati in modo efficiente e offrono vantaggi in termini di velocità e in generale occupazione di memoria consumata dalla struttura dei dati . Il processo di eliminazione di un indice di un array dinamico è molto semplice , ma una delle cadute di matrici dinamiche è che la velocità degli algoritmi utilizzati per aggiungere o rimuovere elementi dell'array è lento rispetto ad altri metodi di archiviazione dati (quali liste collegate , nelle quali l'aggiunta e l'eliminazione dalla matrice può essere fatto in tempo costante ) . L'algoritmo di base per la rimozione di un indice di un array dinamico viene eseguito in tempo lineare ed è abbastanza facile da capire . Cose che ti serviranno
Text Editor
Compiler
Mostra più istruzioni
1
determinare la dimensione finale del vostro dell'array modificato . Rimozione di un unico indice si riduce la dimensione della matrice risultante da 1 :
int newSize currentArraySize = - 1 ;
2
creare un nuovo array dinamico che può contenere tutti gli altri numeri interi in la vecchia matrice. Utilizzare la nuova dimensione per fare questo :
int * newArray = new int [ newSize ] ;
3
Creare contatori per indici in entrambi i vecchi e nuovi array . Questi saranno incrementati separatamente come si copia il contenuto della vecchia serie nella nuova :
oldArrayIndex int = 0;
newArrayIndex int = 0;
4
Traverse entrambi gli array :
per ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex ) per
{
//codice da copiare va qui
< p > }
5 Copiare i dati
dal vecchio array al nuovo , incrementando contatore del nuovo array con bancone della vecchia serie fino a raggiungere l'indice da eliminare. Quando si raggiunge l'indice di cancellare , non copiare i dati e non incrementare il contatore nuovo array. Usando il ciclo for dall'alto :
per ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex ) per
{
se ( oldArrayIndex = indexToDelete ! ) < Br >
{
newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ] ;
+ + newArrayIndex ;
}
}
< br >