C ++ Änderungsarraygröße ändern

C ++ Änderungsarraygröße ändern
Sobald ein Array bereitgestellt wurde. Daher können wir dieses Problem vermeiden, indem wir ein neues Array dynamisch generieren, den Inhalt kopieren und dann das alte Array löschen. Dieser Artikel konzentriert sich darauf, wie Speicher dynamisch in einem Array zuzuweisen und die Array -Größe basierend auf der Benutzereingabe anzupassen. Es ist eine sehr wichtige Strategie in der Programmierung, da sie eine effiziente Speicherauslastung gewährleistet. Wenn wir versuchen, ein neues Element in ein dynamisches Array einzufügen, erhöht es automatisch, bis der neue Element keinen Speicher mehr gibt. Typischerweise verdoppelt sich die Region in der Größe.

Was ist ein dynamisches Array?

Ein dynamisches Array ist identisch mit einem Standardarray im Erscheinungsbild, aber seine Größe kann geändert werden, während der Code ausgeführt wird. Dynamische Array -Komponenten nehmen einen zusammenhängenden Speicherblock auf. Nachdem ein Array definiert wurde, ist es nicht möglich, seine Größe zu ändern. Im Gegensatz dazu ist ein dynamisches Array nicht wie ein statisches Array. Auch wenn es besetzt wurde, kann ein dynamisches Array seine Größe verlängern. Elemente können ständig an der Endposition des dynamischen Arrays durch den reservierten Raum hinzugefügt werden, bis er vollständig besetzt ist.

Schlüsselfaktoren des dynamischen Arrays in C ++:

Die Leistung des Arrays wird durch seine Startgröße und seinen Wachstumsfaktor bestimmt. Beachten Sie die folgenden Punkte:

  • Wenn ein Array bescheiden ist und einen langsameren Wachstumsfaktor aufweist, wird es weiterhin häufiger das Gedächtnis wieder zuweisen. Infolgedessen wird die Leistung des Arrays leiden.
  • Wenn ein Array größer ist und einen hohen Wachstumsfaktor aufweist, hat es eine große Menge ungenutzter Erinnerung. Infolgedessen kann es länger dauern. Die Leistung des Arrays wird ebenfalls darunter leiden

Beispiel 1:

Mit dem neuen Schlüsselwort wird im folgenden C ++ - Programm ein dynamisches Array erstellt. Danach gibt das Schlüsselwort einen Verweis auf das erste Element zurück. Der Header -Abschnitt enthält die enthaltene iStream -Bibliotheksdatei, um seine Methoden zu verwenden. Die Namespace -Datei ist ebenfalls enthalten. Dann wird die Hauptfunktion aufgerufen, in der wir zwei Variablen „P“ und „Num“ des Ganzzahl -Datentyps deklariert haben.

Im nächsten Schritt druckt die COUT -Anweisung die Anweisung „Geben Sie die Zahlen ein“. Der Befehl CIN nimmt den Benutzer Eingaben und verteilt ihn der Variablen „Num“ zu,. Der nächste Schritt hat die Zeigervariable "Array", die die Ganzzahlwerte der Variablen "Num" enthält. Die eingegebene Nummer des Benutzers wird mit dem COUT -Befehl gedruckt. Dann haben wir Für Schleifenbedingung das über jedes vom Benutzer eingegebene Element iteriert. Das Array als "Array" wird im Befehl CIN deklariert, in dem die vom Benutzer eingegebene Eingabe liest.

Nach der Beendigung der Schleife werden die Anweisung „Ihre Zahlen sind“ auf dem Konsolenbildschirm gedruckt. Wieder haben wir eine Für Schleifenbedingung aber diesmal das Für Schleifenbedingung Iteriert über eine Reihe von Elementen. Beachten Sie, dass wir einem Benutzer erlaubt haben, die Array -Größe festzulegen. Infolgedessen wird die Größe des Arrays zur Laufzeit definiert.

#enthalten
Verwenden von Namespace STD;
int main ()
int p, num;
Cout<< "Enter the numbers:" num;
int *array = new int (num);
Cout<< "Enter " << num << " numbers" <für (p = 0; p> Array [p];

Cout<< "Your numbers are: ";
für (p = 0; p < num; p++)
Cout<< Array[p] << " ";

Cout<< "\n ";
Rückkehr 0;

Der Benutzer wird aufgefordert, die Nummer in der Konsolenaufforderung einzugeben. Nach der Eingabe zeigt die Nummer für die Arraygröße die Zahlen der angegebenen Arraygröße an. Das resultierende Array wird auf der Konsole -Eingabeaufforderung von Ubuntu angezeigt.

Beispiel 2:

Mit einer Initialisiererliste kann ein dynamisches Array festgelegt werden. Veranschaulichen wir dies mit einem Beispiel, um zu sehen, wie dies funktioniert. Zuerst haben wir die iOstream -Datei und die STD -Namespace -Datei im Abschnitt Header hinzugefügt. Anschließend haben wir die Hauptfunktion aufgerufen. Die Logik des Programms sollte in den Körper der Funktion aufgenommen werden. Dann haben wir eine Variable als „A“ des Ganzzahl -Datentyps definiert.

Nachdem wir die Ganzzahlvariable deklariert haben, haben wir eine dynamische Array -Deklaration als „arr“, die eine Initialisiererliste verwendet. Wir haben vier ganzzahlige Einträge im Array. Der COUT -Befehl druckt die Anweisung „Elemente of Array“, bevor die Array -Elemente angezeigt werden.

Im nächsten Schritt haben wir A für Schleife die in einem angegebenen Array über Elemente iteriert. Durch den COUT -Befehl werden die Elemente des angegebenen Arrays auf der Konsole -Eingabeaufforderung gedruckt.

#enthalten
Verwenden von Namespace STD;
int main (void)
int a;
int *arr new int [4] 9, 23, 1, 17;
Cout<< "Elements of Array: " <für (a = 0; a < 4; a++)
Cout<
Rückkehr 0;

Das Folgende ist das Ergebnis, das wir aus der obigen Programmausführung erhalten haben:

Beispiel 3:

Sobald das Ziel des dynamischen Arrays erreicht wurde, sollte es aus dem Computerspeicher entfernt werden. Mit dem Ausdruck des Löschens kann dies verwendet werden, damit der Speicherplatz kostenlos ist und zusätzliche Daten speichert. Wir müssen delete [] verwenden, um das dynamische Array aus dem Speicher des Systems zu entfernen. Die quadratische Klammer [] mit dem Schlüsselwort löscht die CPU, um viele Variablen zu entfernen und nicht nur eines.

Beginnen wir mit der Implementierung des Programms. Wir haben die erforderliche Datei im Abschnitt über den Header importiert. Dann heißt die Hauptfunktion. Die Ganzzahlvariablen "I" und "Nein" werden in der Hauptfunktion deklariert. Nachdem wir diese Variablen definiert haben, haben wir die Cout -Anweisung „Eingabemummer“, die der Benutzer die Nummer eingibt. Wir erhalten eine Nummer vom Benutzer und speichern sie in der Variablen „Nein“ mit dem CIN -Befehl.

Dann deklarieren Sie eine Zeigervariable "myarr", die die Ganzzahlen im Speicher speichert. Die vom Benutzer eingegebene Nummer wird im zweiten Cout -Befehl dieses Programms gedruckt. Der Für Schleife Die Anweisung wird für die Iteration über die eingegebene Benutzernummer verwendet. Am Ende haben wir die Anweisung Löschen [] konstruiert, die das im Programm angegebene Array auslöscht und den Raum im Speicher freigibt.

#enthalten
Verwenden von Namespace STD;
int main ()
int i, nein;
Cout<< "Input Number:" no;
int *myarr = new int (no);
Cout<< "Input " << no << " numbers" <für (i = 0; i> myarr [i];

Cout<< "Input numbers are: ";
für (i = 0; i< no; i++)
Cout<
Cout<löschen [] myarr;
Rückkehr 0;

Bei der Ausführung des Programms haben wir die folgende Ausgabe erhalten. Wenn das Programm gekündigt wird, wird das Array gelöscht.

Beispiel 4:

Wir können ein Zeigerarray von "x" dynamisch definieren und dann für jeden in dem folgenden Beispiel zu sehen. Zuerst haben wir die Matrix im Header -Abschnitt definiert. Im nächsten Schritt haben wir die Hauptfunktion, bei der wir eine Zeigervariable „arr“ haben,. Die Zeigervariable enthält das Array der Größe „x“.

Jetzt die Für Schleifenerklärung zuteilt jede Zeile eine Speichergröße "y". Dann haben wir eine verschachtelte Schleife, um einem Speicher, der zugewiesen wurde, dynamisch Werte zuzuweisen. Die Rand -Funktion generiert eine Zufallszahl für das 2D -Array. In der nächsten verschachtelten Schleife haben wir das 2D -Array durch die Std :: Cout -Erklärung gedruckt. Nach der Programmabgabe wird das angegebene 2D -Array aus dem zugewiesenen Speicherplatz gelöscht, während wir am Ende Löschen [] verwendet haben.

#enthalten
#define x 3
#define y 4
int main ()

int ** arr = new int*[x];
für (int i = 0; i< X; i++)
arr [i] = new int [y];

für (int i = 0; i< X; i++)

für (int j = 0; j < Y; j++)
arr [i] [j] = rand () % 10;


für (int i = 0; i< X; i++)

für (int j = 0; j < Y; j++)
std :: Cout<
std :: Cout<< std::endl;

für (int i = 0; i< X; i++)
löschen [] arr [i];

[] arr;
Rückkehr 0;

Das 2D -Array wurde im folgenden Konsolenbildschirm generiert und angezeigt.

Abschluss

Das ist das ist, was das Array der Größe in C in C belastet hat++. Wir haben erfahren, dass C ++-Arrays keine integrierte Methode zur Änderung haben. Aber durch die dynamische Array -Allokation in C ++ kann die Arraygröße geändert werden. Wir haben im Beispiel veranschaulicht, die Größe des dynamischen Arrays mit einem neuen Schlüsselwort zu ändern. Außerdem können wir eine Initialisierungsliste verwenden, um ein Array zu initialisieren. Nach der Größenänderung können wir auch Speicherplatz im Speicher freisetzen, indem wir Delete []. In diesem Artikel wird Ihnen angezeigt, wie Sie ein Array in C ändern können++.