Maison  >  Article  >  développement back-end  >  Programme C++ pour supprimer des éléments d'un tableau sans utiliser les fonctions de la bibliothèque

Programme C++ pour supprimer des éléments d'un tableau sans utiliser les fonctions de la bibliothèque

WBOY
WBOYavant
2023-09-09 10:45:021093parcourir

Programme C++ pour supprimer des éléments dun tableau sans utiliser les fonctions de la bibliothèque

Le but d'un tableau est de donner accès au même type de données sur plusieurs emplacements mémoire via l'adresse de base et l'index. Dans diverses applications, les tableaux sont utilisés pour stocker des données pour diverses raisons. Les tableaux doivent gérer l'ajout, la suppression et la mise à jour d'éléments aussi efficacement que les autres structures de données. Les tableaux statiques et dynamiques contiennent de nombreuses fonctions de bibliothèque qui gèrent diverses opérations liées aux tableaux en C++. Mais dans cet article, nous verrons comment supprimer des éléments d’un tableau sans utiliser aucune fonction de bibliothèque.

Comprendre les concepts et illustrer avec des exemples

Given array A = [89, 12, 32, 74, 14, 69, 45, 12, 99, 85, 63, 32]
After deleting an element from index 5, the array will be like this:

A = [89, 12, 32, 74, 14, 45, 12, 99, 85, 63, 32]

Supprimez un élément de n'importe quelle position, il existe trois situations possibles. Supprimer depuis le début, supprimer depuis la fin, supprimer depuis le milieu de n'importe quel index. Le retrait depuis la fin ne nécessite aucun déplacement. Mais les deux autres nécessitent de déplacer des éléments vers la gauche. Supprimez d’abord un élément de la position, puis remplissez la position avec des éléments consécutifs. Voyons l'algorithme et le code C++ pour une compréhension claire.

Algorithme

  • Obtenez le tableau A avec n éléments, la position est pos

  • Si pos >= n + 1, alors

    • Ne peut pas être supprimé, quittez la fonction

  • Sinon

    • Pour l'index c = pos à n − 1, procédez comme suit

      • A[c]=A[c+1]

    • Fin

    • n := n − 1

  • Fin si

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>
#include <algorithm>
# define Z 30

using namespace std;

void displayArr(int arr[], int n ) {
   for( int i = 0; i < n; i++ ){
      cout << arr[ i ] << ", ";
   } 
   cout << endl;
} 

void deleteElement( int A[], int &n, int pos ){
   if ( pos >= n + 1 ) {   
      cout << "Deletion not possible" << endl;
      return;
   }
   
   else
   {   
      for ( int c = pos; c < n ; c++ ) {
         A[ c ] = A[ c + 1 ];          
      }
      n = n - 1;
   }   
}

int main() {
   int arr[ Z ] = {84, 56, 21, 32, 74, 96, 85, 41, 21, 94, 20, 37, 36, 75, 20};
   int n = 15;
   
   cout << "Given array elements: ";
   displayArr( arr, n);
   
   cout << "Delete from last position (position 15)" << endl;
   deleteElement( arr, n, 15 );
   cout << "Array after deleting last element: " << endl;
   displayArr( arr, n);
   
   cout << "Delete from first position (position 0)" << endl;
   deleteElement( arr, n, 0 );
   cout << "Array after deleting first element: " << endl;
   displayArr( arr, n);
   
   cout << "Delete from position 7" << endl;
   deleteElement( arr, n, 7 );
   cout << "Array after deleting element from index 7: " << endl;
   displayArr( arr, n);
}

Sortie

Given array elements: 84, 56, 21, 32, 74, 96, 85, 41, 21, 94, 20, 37, 36, 75, 20, 
Delete from last position (position 15)
Array after deleting last element: 
84, 56, 21, 32, 74, 96, 85, 41, 21, 94, 20, 37, 36, 75, 
Delete from first position (position 0)
Array after deleting first element: 
56, 21, 32, 74, 96, 85, 41, 21, 94, 20, 37, 36, 75, 
Delete from position 7
Array after deleting element from index 7: 
56, 21, 32, 74, 96, 85, 41, 94, 20, 37, 36, 75,

Conclusion

Nous avons montré comment supprimer des éléments d'un tableau dans cet article. Il s'agit d'un processus universel et nous pouvons supprimer n'importe où nous le souhaitons, y compris le début, la fin et le milieu. Les vecteurs ne sont pas utilisés car nous n'utilisons aucune fonction de bibliothèque. Pour les tableaux de taille dynamique, une approche vectorielle est également une option.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer