“Conocimiento Programación>C /C + + Programming

Cómo eliminar un índice en una matriz dinámica de enteros usando C + +

2016/5/28
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 !)

{

newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ] ;

+ + newArrayIndex ;

}

}


C /C + + Programming
Móvil Tutorial procesador
Cómo diseñar un reloj digital
Cómo leer en Cuerdas en la matriz C + +
Cómo mostrar porcentajes en C + +
¿Cuál es la función de las tragamonedas AGP?
¿Cómo se llama el proceso de ingresar al programa de computadora a la memoria?
Cómo hacer una cadena inmutable
¿Qué es la Toma de Decisiones no estructuradas, estructuradas y semiestructuradas?
Conocimiento de la computadora © http://www.ordenador.online