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 } 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 >
|