tableaux attribués dynamiquement sont un moyen économe en espace de stockage de quantités variables de données en C + + . Ils sont efficacement organisés et offrent des avantages à la fois vitesse et globale empreinte mémoire consommée par la structure de données . Le processus de suppression d'un index à partir d'un tableau dynamique est assez simple , mais l'une des chutes de tableaux dynamiques est que la vitesse des algorithmes utilisés pour ajouter ou supprimer des éléments du tableau est lent par rapport à d'autres méthodes de stockage de données (telles que les listes chaînées , dans laquelle ajout et la suppression de la matrice peut être fait en temps constant ) . L'algorithme plus simple de suppression d'index à partir d'un tableau dynamique s'exécute en temps linéaire et est assez facile à comprendre. Choses que vous devez
texte éditeur
compilateur
Voir Plus Instructions
1
déterminer la taille finale de votre tableau modifié . Suppression d'un index unique permettra de réduire la taille du tableau résultant de 1 :
int newSize = currentArraySize - 1;
2
Créer un nouveau tableau dynamique qui peut contenir tous les entiers restant dans l'ancien tableau . Utilisez la nouvelle taille pour ce faire:
int * newArray = new int [ newSize ] ;
3
créer des compteurs pour les index dans les nouveaux et les vieux tableaux. Ceux-ci seront augmentés séparément comme vous copiez le contenu de l'ancien tableau dans le nouveau :
int oldArrayIndex = 0;
int newArrayIndex = 0;
4
Traverse les deux tableaux :
pour ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex )
{
//code à copier va ici
< p >}
5 Données de copie
de l'ancien tableau à la nouvelle , l'incrémentation du compteur du nouveau tableau avec le compteur de l' ancien tableau jusqu'à ce que vous atteigniez l'index à supprimer. Lorsque vous arrivez à l'index à supprimer, ne pas copier des données et ne pas incrémenter le compteur de nouveaux tableau. Utilisation de la boucle for ci-dessus:
pour ( oldArrayIndex = 0; oldArrayIndex < currentArraySize ; + + oldArrayIndex )
{
if ( oldArrayIndex = indexToDelete ! ) < Br >
{
newArray [ newArrayIndex ] = oldArray [ oldArrayIndex ] ;
+ + newArrayIndex ;
} }
< br >