Heim >Backend-Entwicklung >C++ >C++-Programm zum Verschieben eines Arrays in ein anderes Array

C++-Programm zum Verschieben eines Arrays in ein anderes Array

WBOY
WBOYnach vorne
2023-09-04 13:37:061384Durchsuche

C++-Programm zum Verschieben eines Arrays in ein anderes Array

Eine lineare sequentielle Datenstruktur, die als Array bezeichnet wird, wird zum Speichern homogener Daten in einer Reihe von Speicherbereichen verwendet. Ein Array muss über bestimmte Funktionen verfügen, um Elemente effektiv einzufügen, zu löschen, zu durchlaufen und zu aktualisieren, genau wie andere Datenstrukturen . Unsere Arrays in C++ sind statisch. Darüber hinaus bietet C++ maximal Z-Elemente, die in einem statischen Array gespeichert werden können Wir werden sehen, wie man die Elemente eines Arrays in ein anderes Array in C++ verschiebt.

Konzepte verstehen und anhand von Beispielen veranschaulichen

Given array A = [10, 14, 65, 85, 96, 12, 35, 74, 69]
Another given array B = [56, 42, 15, 18, 20, 32]

Pushing the elements of B into A, signifies that A becomes:
A = [10, 14, 65, 85, 96, 12, 35, 74, 69, 56, 42, 15, 18, 20, 32]

Im obigen Beispiel ist es offensichtlich, dass wir zwei Arrays A und B haben. B in A zu schieben bedeutet, alle Elemente von B in Array A einzufügen. Diese Elemente werden am Ende von A hinzugefügt. Um dies zu erreichen, müssen wir jedoch eines prüfen: ob die verbleibenden Leerstellen in A (d. h. die maximale Größe von A minus der Anzahl der vorhandenen Elemente in A) gleich oder größer als die Anzahl der Elemente in B sind. Andernfalls können wir sie nicht nach A schieben. Werfen wir einen Blick auf den Algorithmus und den C++-Implementierungscode.

Algorithmus

  • Nimm das Array A und B als Eingabe, die Anzahl der Elemente n in A als Eingabe, die Anzahl der Elemente m in B als Eingabe

  • Wenn A genug Platz hat, um das gesamte B unterzubringen, dann

  • für jedes Element e in B, tun

  • e an Array A anhängen

  • Den Zyklus beenden

  • Ende wenn

  • Array A und neue Größe n zurückgeben

Beispiel

#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 insertAtEnd( int arr[], int &n, int e ){
   if( n < Z ) {
      arr[ n ] = e;
   }
   n = n + 1;
}

void pushArrayToAnother( int A[], int &n, int B[], int m ) {
   if( (Z - n) >= m ){
      for( int i = 0; i < m; i++ ) {
         insertAtEnd( A, n, B[i] );   
      }
   }
}

int main() {
   int A[ Z ] = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};
   int n = 12;
   
   int B[ Z ] = {56, 84, 23, 12, 17, 19, 65, 32};
   int m = 8;
   
   cout << "First Array: ";
   displayArr( A, n );
   
   cout << "Second Array: ";
   displayArr( B, m );
   
   pushArrayToAnother( A, n, B, m );
   cout << "Array A after pushing B:" << endl;
   displayArr( A, n );
}

Ausgabe

First Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Second Array: 56, 84, 23, 12, 17, 19, 65, 32, 
Array A after pushing B:
57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 56, 84, 23, 12, 17, 19, 65, 32,

Verwendung dynamischer Arrays oder Vektoren

Das Gleiche kann mit Vektoren erreicht werden. Vektoren sind dynamische Arrays, die in C++ STL vorhanden sind. Wenn wir die Verwendung von Vektoren in Betracht ziehen, müssen wir uns beim Einfügen von Elementen nicht um den verfügbaren Platz kümmern. Da der Vektor dynamisch ist, fügt er bei Bedarf automatisch neue Slots hinzu. Der Algorithmus ist derselbe wie bei der Prüfung der verfügbaren Steckplätze.

Algorithmus

  • Nimm das Array A und B als Eingabe, die Anzahl der Elemente n in A als Eingabe, die Anzahl der Elemente m in B als Eingabe

  • für jedes Element e in B, tun

    • e an Array A anhängen

  • Den Zyklus beenden

  • Array A und neue Größe n zurückgeben

Beispiel

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

void pushArrayToAnother( vector<int> &A, vector<int> B ){
   for( int i = 0; i < B.size() ; i++ ) {
      A.push_back( B[i] );
   }
}

int main(){
   vector<int> A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};

   vector<int> B = {56, 84, 23, 12, 17, 19, 65, 32};

   cout << "First Array: ";
   displayArr( A );

   cout << "Second Array: ";
   displayArr( B );

   pushArrayToAnother( A, B );
   cout << "Array A after pushing B:" << endl;
   displayArr( A );
}

Ausgabe

First Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Second Array: 56, 84, 23, 12, 17, 19, 65, 32, 
Array A after pushing B:
57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 56, 84, 23, 12, 17, 19, 65, 32,

Verwenden Sie die Funktion insert() im Vektor

Die vorherige Methode war ein manueller Prozess. Wir können jedoch die Funktion insert() in Vektor-STL verwenden, um die gleiche Funktionalität zu erreichen. Die Funktion insert() akzeptiert einen Positionszeiger (unter Verwendung eines Iterators) und einen Iterator, kopiert ein Element aus einem Containerobjekt und fügt es aus dem Positionsindex in ein anderes Containerobjekt ein. Werfen wir einen Blick auf die C++-Implementierung, um einen klaren Überblick zu bekommen.

Beispiel

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

void pushArrayToAnother( vector<int> &A, vector<int> B ) { 
   A.insert( A.end(), B.begin(), B.end() ); 
}

int main() {
   vector<int> A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};
   
   vector<int> B = {56, 84, 23, 12, 17, 19, 65, 32};
   
   cout << "First Array: ";
   displayArr( A );
   
   cout << "Second Array: ";
   displayArr( B );
   
   pushArrayToAnother( A, B );
   cout << "Array A after pushing B:" << endl;
   displayArr( A );
}

Ausgabe

First Array: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Second Array: 56, 84, 23, 12, 17, 19, 65, 32, 
Array A after pushing B:
57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 56, 84, 23, 12, 17, 19, 65, 32,

Fazit

In diesem Artikel haben wir verschiedene Möglichkeiten gesehen, ein Array-Element an das Ende eines anderen Arrays einzufügen oder zu verschieben. Im ersten Beispiel verwenden wir ein einfaches C++-Array und müssen besonders auf den verfügbaren Platz im statischen Array achten. Bei den nächsten beiden Methoden müssen wir uns darüber keine Gedanken machen, da wir dynamische Vektoren verwenden, die bei Bedarf automatisch Speicherplatz zuweisen.

Das obige ist der detaillierte Inhalt vonC++-Programm zum Verschieben eines Arrays in ein anderes Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen