arrays asignados dinámicamente son un medio eficiente del espacio de almacenamiento de cantidades variables de datos en C + + . Están organizados de manera eficiente y ofrecer ventajas en la velocidad y la capacidad de memoria total consumida por la estructura de datos . El proceso de eliminación de un índice a partir de una matriz dinámica es bastante sencillo , pero una de las caídas de matrices dinámicas es que la velocidad de los algoritmos utilizados para añadir o eliminar elementos de la matriz es lento en comparación con otros métodos de almacenamiento de datos (tales como listas enlazadas , en el que la adición y eliminación de la matriz se puede hacer en un tiempo constante ) . El algoritmo más básico para la eliminación de un índice a partir de una matriz dinámica se ejecuta en tiempo lineal y es bastante fácil de entender . Cosas que necesitará
texto editor
Compiler
Ver Más instrucciones
1
determinar el tamaño final de la matriz modificada. Eliminación de un solo índice se reducirá el tamaño de la matriz resultante por 1 :
int newSize currentArraySize = - 1 ;
2
Crear una matriz nueva dinámica que puede contener todos los números enteros que quedan en la vieja matriz. Utilice el nuevo tamaño para hacer esto:
int * newArray = new int [ newSize ] ;
3
Crear contadores de índices , tanto en los nuevos y viejos arrays. Estos se incrementarán por separado como copiar el contenido de la antigua matriz en la nueva :
oldArrayIndex int = 0 ;
newArrayIndex int = 0 ;
4
Traverse ambas matrices :
para ( oldArrayIndex = 0 ; oldArrayIndex < currentArraySize ; + + oldArrayIndex )
{ //código para copiar va aquí
< p >}
5 Copiar datos
de la antigua matriz a la nueva , incrementando el mostrador de la nueva matriz con el contador de la antigua matriz hasta llegar al índice que desea eliminar . Cuando alcance el índice de borrar, no copiar datos y no incrementar el nuevo contador de matriz. Utilizando el bucle de arriba:
para ( oldArrayIndex = 0 ; oldArrayIndex < currentArraySize ; + + oldArrayIndex )
{
if ( oldArrayIndex = indexToDelete !) < Br >
{
newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ] ;
+ + newArrayIndex ;
}
}
< br >