Der Zweck eines Arrays besteht darin, über Basisadresse und Index Zugriff auf denselben Datentyp an mehreren Speicherorten zu ermöglichen. In verschiedenen Anwendungen werden Arrays aus verschiedenen Gründen zum Speichern von Daten verwendet. Arrays müssen das Hinzufügen, Löschen und Aktualisieren von Elementen genauso effizient bewältigen wie andere Datenstrukturen. Sowohl statische als auch dynamische Arrays enthalten viele Bibliotheksfunktionen, die verschiedene Array-bezogene Vorgänge in C++ verarbeiten. In diesem Artikel erfahren Sie jedoch, wie Sie Elemente aus einem Array entfernen, ohne eine Bibliotheksfunktion zu verwenden.
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]
Löschen Sie ein Element an einer beliebigen Position. Es gibt drei mögliche Situationen. Von Anfang an löschen, vom Ende löschen, von der Mitte eines Indexes löschen. Das Entfernen vom Ende erfordert kein Verschieben. Die restlichen beiden erfordern jedoch das Verschieben von Elementen nach links. Entfernen Sie zunächst ein Element aus der Position und füllen Sie die Position dann mit aufeinanderfolgenden Elementen. Sehen wir uns zum besseren Verständnis den Algorithmus und den C++-Code an.
Erhalten Sie das Array A mit n Elementen, die Position ist pos
Wenn pos >= n + 1, dann
Kann nicht gelöscht werden, Funktion beenden
Sonst
Für den Index c = pos zu n − 1 gehen Sie wie folgt vor
A[c]=A[c+1]
Ende
n := n − 1
Ende wenn
#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); }
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,
In diesem Artikel haben wir gezeigt, wie man Elemente aus einem Array entfernt. Dies ist ein universeller Prozess und wir können überall löschen, wo wir wollen, einschließlich am Anfang, am Ende und in der Mitte. Vektoren werden nicht verwendet, da wir keine Bibliotheksfunktionen verwenden. Für Arrays mit dynamischer Größe ist auch ein vektorbasierter Ansatz eine Option.
Das obige ist der detaillierte Inhalt vonC++-Programm zum Löschen von Elementen aus einem Array, ohne Bibliotheksfunktionen zu verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!