Heim > Artikel > Backend-Entwicklung > C++-Programm zum Hinzufügen eines Elements am Anfang eines Arrays
Durch die Verwendung von Arrays und Datenstrukturen ist es möglich, homogene (gleiche) Daten an mehreren Speicherorten zu speichern. Der Hauptvorteil der Verwendung von Arrays besteht darin, dass wir sie mithilfe des Indexparameters von jeder Position abrufen können. Diese Datenstruktur wird linear, da Daten Schritt für Schritt eingefügt und extrahiert werden müssen. Wir müssen lediglich den Index oder die Positionsnummer des Elements in eckige Klammern setzen, um es aus dem Array abzurufen. In diesem Artikel verwenden wir ein Array A und ein weiteres Element e. Wir werden e an der Startposition von A in C++ einfügen.
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]
Im obigen Beispiel haben wir ein Array A mit neun Elementen. Wir werden ein weiteres Element 23 am Anfang von Array A einfügen. Das resultierende Array enthält alle Elemente plus die führenden 23. Um ein Element am Anfang einzufügen, müssen wir alle Elemente um eine Position nach rechts verschieben, dann ist der erste Slot leer und wir platzieren das neue Element an dieser Position. Werfen wir zum besseren Verständnis einen Blick auf den Algorithmus.
Nehmen Sie ein Array A und ein Element e
Wenn Array A genügend Platz hat, um Element e einzufügen, dann
Für i im Bereich von n-1 bis 0 gehen Sie wie folgt vor:
A[ i + 1 ] = A[ i ]
Den Zyklus beenden
A[0]=e
n um 1 erhöhen
Ende wenn
Zurück zu A
#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 ); }
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,
Vector ist eine dynamische Datenstruktur, die Teil der C++-STL ist. Wir können eine ähnliche Funktionalität wie Arrays in Vektoren erhalten. Aber im Vektor können wir nur am Ende oder dahinter einfügen. Es gibt keine direkte Möglichkeit, am Anfang einzufügen. Wir können das Element jedoch wie zuvor um eine Position nach hinten verschieben und das neue Element am Anfang einfügen. Oder wir können einen weiteren Ein-Element-Vektor erstellen, der nur die neuen Elemente enthält, und diese dann verketten. Daher enthält der resultierende Vektor alle vorherigen Elemente und das neue Element am Anfang. Werfen wir einen Blick auf den Algorithmus und die C++-Implementierung.
Nehmen Sie ein Array A und ein Element e
Erstellen Sie einen leeren Vektor B
Fügen Sie e in B ein
A := Verbinde B mit A (zuerst B, dann A)
Zurück zu A
#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 ); }
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,
In diesem Artikel haben wir gesehen, wie man Elemente am Anfang eines Arrays einfügt. Hier diskutieren wir zwei verschiedene Lösungen. Die erste Lösung verwendet statische C++-Arrays, während die zweite Lösung Vektoren verwendet. Vektoren haben keine Möglichkeit, Elemente direkt am Anfang einzufügen. Mit der Methode push_back() können wir Elemente direkt am Ende einfügen. Dazu verwenden wir einen Trick, bei dem wir ein Array der Größe 1 erstellen und das neue Element darin einfügen. Dann verketten Sie es mit dem angegebenen Array. Den gleichen Effekt können wir mit Listen erzielen. C++-Listen verfügen jedoch über die Methode push_front(), die Elemente direkt am Anfang einfügt. Aber Listen sind keine Arrays, sondern verknüpfte Listen.
Das obige ist der detaillierte Inhalt vonC++-Programm zum Hinzufügen eines Elements am Anfang eines Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!