Maison > développement back-end > C++ > le corps du texte

Programme C++ pour ajouter un élément au début du tableau

WBOY
Libérer: 2023-09-08 15:01:02
avant
866 Les gens l'ont consulté

Programme C++ pour ajouter un élément au début du tableau

En utilisant des tableaux et des structures de données, il est possible de stocker des données homogènes (mêmes) sur plusieurs emplacements mémoire. Le principal avantage de l’utilisation de tableaux est que nous pouvons les récupérer depuis n’importe quelle position à l’aide du paramètre index. Cette structure de données devient linéaire car les données doivent être insérées et extraites étape par étape. Il suffit de mettre l'index ou le numéro de position de l'élément entre crochets pour le récupérer dans le tableau. Dans cet article, nous utiliserons un tableau A et un autre élément e. Nous insérerons e à la position de départ de A en C++.

Comprendre les concepts et illustrer avec des exemples

Given array A = [10, 14, 65, 85, 96, 12, 35, 74, 69]
After inserting 23 at the end, the array will look like this:
[23, 10, 14, 65, 85, 96, 12, 35, 74, 69]
Copier après la connexion

Dans l'exemple ci-dessus, nous avons un tableau A contenant neuf éléments. Nous allons insérer un autre élément 23 au début du tableau A. Le tableau résultant contient tous les éléments plus les 23 premiers. Pour insérer un élément au début, nous devons déplacer tous les éléments d'une position vers la droite, puis le premier emplacement sera vide et nous mettons le nouvel élément dans cette position. Jetons un coup d'œil à l'algorithme pour une compréhension plus claire.

Algorithme

  • Prenez un tableau A et un élément e

  • Si le tableau A a suffisamment d'espace pour insérer l'élément e, alors

    • Pour i compris entre n-1 et 0, procédez comme suit :

      • A[ je + 1 ] = A[ je ]

    • Fin du cycle

    • A[0]=e

    • augmentation n 1

  • Fin si

  • Retour à A

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>
# define Z 50

using namespace std;

void displayArr(int arr[], int n){
   for( int i = 0; i < n; i++ ){
      cout << arr[ i ] << ", ";
   }
   cout << endl;
}
void insertAtBeginning( int A[], int &n, int e ){
   if( n + 1 < Z ) {
      for( int i = n - 1; i >= 0; i-- ) {
         A[ i + 1 ] = A[ i ];
      }
      A[ 0 ] = e;
      n = n + 1;
   } 
}

int main() {
   int A[ Z ] = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};
   int n = 12;
   
   cout << "Array before insertion: ";
   displayArr( A, n );
   
   cout << "Inserting 58 at the beginning:" << endl;
   insertAtBeginning( A, n, 58 );
   
   cout << "Array after insertion: ";
   displayArr( A, n );
   
   cout << "Inserting 225 at the beginning:" << endl;
   insertAtBeginning( A, n, 225 );
   
   cout << "Array after insertion: ";
   displayArr( A, n );
}
Copier après la connexion

Sortie

Array before insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Inserting 58 at the beginning:
Array after insertion: 58, 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Inserting 225 at the beginning:
Array after insertion: 225, 58, 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14,
Copier après la connexion
Copier après la connexion

Utilisez un vecteur pour insérer un élément devant

Vector est une structure de données dynamique qui fait partie du STL C++. Nous pouvons obtenir des fonctionnalités similaires aux tableaux de vecteurs. Mais en vecteur on ne peut insérer qu'à la fin ou derrière. Il n'y a pas de moyen direct d'insérer au début. Cependant, nous pouvons déplacer l'élément d'une position en arrière comme avant et insérer le nouvel élément au début. Ou nous pouvons créer un autre vecteur à un élément contenant uniquement les nouveaux éléments, puis les concaténer. Par conséquent, le vecteur résultant contiendra tous les éléments précédents et le nouvel élément au début. Jetons un coup d'œil à l'algorithme et à l'implémentation C++.

Algorithme

  • Prenez un tableau A et un élément e

  • Créez un vecteur vide B

  • Insérez e dans B

  • A := Connectez B avec A (d'abord B puis A)

  • Retour à A

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>
#include <vector>
# define Z 50

using namespace std;

void displayArr( vector<int> v ){
   for( int i = 0; i < v.size() ; i++ ){
      cout << v[ i ] << ", ";
   }
   cout << endl;
}

vector<int> insertAtBeginning( vector<int> A, int e ){
   vector<int> B( 1 );
   B[ 0 ] = e;
   B.insert( B.end(), A.begin(), A.end() );
   return B;
}

int main() {
   vector<int> A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};  
   cout << "Array before insertion: ";
   displayArr( A );
   
   cout << "Inserting 58 at the beginning:" << endl;
   A = insertAtBeginning( A, 58 );
   
   cout << "Array after insertion: ";
   displayArr( A );
   
   cout << "Inserting 225 at the beginning:" << endl;
   A = insertAtBeginning( A, 225 );
   
   cout << "Array after insertion: ";
   displayArr( A );
}
Copier après la connexion

Sortie

Array before insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Inserting 58 at the beginning:
Array after insertion: 58, 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Inserting 225 at the beginning:
Array after insertion: 225, 58, 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14,
Copier après la connexion
Copier après la connexion

Conclusion

Dans cet article, nous avons vu comment insérer des éléments au début d'un tableau. Nous discutons ici de deux solutions différentes. La première solution utilise des tableaux C++ statiques, tandis que la seconde solution utilise des vecteurs. Les vecteurs n'ont aucun moyen d'insérer des éléments directement au début. Nous pouvons insérer des éléments directement à la fin en utilisant la méthode push_back(). Pour ce faire, nous utilisons une astuce où nous créons un tableau de taille 1 et y insérons le nouvel élément. Ensuite, concaténez-le avec le tableau donné. Nous pouvons obtenir le même effet en utilisant des listes. Cependant, les listes C++ ont la méthode push_front(), qui insère les éléments directement au début. Mais les listes ne sont pas des tableaux, ce sont des listes chaînées.

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal