Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C++ Dynamische Zuordnung von Arrays mit Beispiel

Was ist ein dynamisches Array?

Ein dynamisches Array ist einem regulären Array ziemlich ähnlich, aber seine Größe kann während der Programmlaufzeit geändert werden. DynamArray-Elemente belegen einen zusammenhängenden Speicherblock.

Nachdem ein Array erstellt wurde, kann seine Größe nicht mehr geändert werden. Ein dynamisches Array ist jedoch anders. Ein dynamisches Array kann seine Größe erweitern, selbst nachdem es gefüllt wurde.

Während der Erstellung eines Arrays wird ihm eine vorbestimmte Speichermenge zugewiesen. Dies ist bei einem dynamischen Array nicht der Fall, da es seine Speichergröße bei Bedarf um einen bestimmten Faktor erhöht.

In diesem C++-Tutorial lernen Sie

Faktoren, die sich auf die Leistung dynamischer Arrays auswirken

Die anfängliche Größe des Arrays und sein Wachstumsfaktor bestimmen seine Leistung. Beachten Sie die folgenden Punkte:

  1. Wenn ein Array eine kleine Größe und einen kleinen Wachstumsfaktor hat, wird es den Speicher häufiger neu zuweisen. Dadurch wird die Leistung des Arrays verringert.
  2. Wenn ein Array eine große Größe und einen großen Wachstumsfaktor hat, wird es einen riesigen Teil ungenutzten Speichers haben. Aus diesem Grund können Größenänderungen länger dauern. Dadurch wird die Leistung des Arrays verringert.

Das neue Schlüsselwort

In C++ können wir mit dem Schlüsselwort new ein dynamisches Array erstellen. Die Anzahl der zuzuweisenden Items wird in eckigen Klammern angegeben. Dem sollte der Typname vorangestellt werden. Die angeforderte Stückzahl wird zugeteilt.

Syntax:

Das neue Schlüsselwort hat die folgende Syntax:

pointer_variable = new data_type;

Die Zeigervariable ist der Name der Zeigervariablen.

Der Datentyp muss ein gültiger C++-Datentyp sein.

Das Schlüsselwort gibt dann einen Zeiger auf das erste Element zurück. Nachdem wir das dynamische Array erstellt haben, können wir es mit dem Schlüsselwort delete löschen.

Beispiel 1:

#include<iostream>
using namespace std;
int main() {
	int x, n;
	cout << "Enter the number of items:" << "\n";
	cin >>n;
	int *arr = new int(n);
	cout << "Enter " << n << " items" << endl;
	for (x = 0; x < n; x++) {
		cin >> arr[x];
	}
	cout << "You entered: ";
	for (x = 0; x < n; x++) {
		cout << arr[x] << " ";
	}
	return 0;
}


Ausgabe:

Hier ist ein Screenshot des Codes:

Code-Erklärung:

  1. Fügen Sie die iostream-Header-Datei in unser Programm ein, um seine Funktionen zu nutzen.
  2. Nehmen Sie den std-Namensraum in unser Programm auf, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  3. Rufen Sie die Funktion main() auf. Die Programmlogik sollte innerhalb des Hauptteils der Funktion hinzugefügt werden.
  4. Deklarieren Sie zwei Integer-Variablen x und n.
  5. Einen Text auf der Konsole ausgeben, der den Benutzer auffordert, den Wert der Variablen n einzugeben.
  6. Lesen Sie Benutzereingaben von der Tastatur und weisen Sie sie der Variablen n zu.
  7. Deklarieren Sie ein Array, das insgesamt n Integer enthalten soll, und weisen Sie es der Zeigervariablen *arr.
  8. zu
  9. Eine Meldung drucken, die den Benutzer auffordert, eine Anzahl von n Elementen einzugeben.
  10. Verwenden Sie eine for-Schleife, um eine Schleifenvariable x zu erstellen, um die vom Benutzer eingegebenen Elemente zu durchlaufen.
  11. Lesen Sie die vom Benutzer eingegebenen Elemente und speichern Sie sie im Array arr.
  12. Ende des Körpers der for-Schleife.
  13. Text auf der Konsole ausgeben.
  14. Verwenden Sie eine for-Schleife, um eine Schleifenvariable x zu erstellen, um die Elemente des Arrays zu durchlaufen.
  15. Geben Sie die Werte aus, die in dem Array namens arr auf der Konsole enthalten sind.
  16. Ende des Körpers der for-Schleife.
  17. Das Programm muss nach erfolgreichem Abschluss einen Wert zurückgeben.
  18. Ende des Hauptteils der main()-Funktion.

HINWEIS:Im obigen Beispiel darf der Benutzer während der Laufzeit eine beliebige Größe für das Array angeben. Das heißt, die Größe des Arrays wird zur Laufzeit bestimmt .

Initialisieren dynamisch zugewiesener Arrays

Es ist einfach, ein dynamisches Array auf 0 zu initialisieren.

Syntax:

int *array{ new int[length]{} };

In der obigen Syntax bezeichnet die Länge die Anzahl der Elemente, die dem Array hinzugefügt werden sollen. Da wir das Array auf 0 initialisieren müssen, sollte dies leer bleiben.

Wir können ein dynamisches Array mit einer Initialisierungsliste initialisieren. Lassen Sie uns ein Beispiel erstellen, das dies demonstriert.

Beispiel 2:

#include <iostream>
using namespace std;

int main(void) {

	int x; 

	int *array{ new int[5]{ 10, 7, 15, 3, 11 } };

	cout << "Array elements: " << endl;

	for (x = 0; x < 5; x++) {

		cout << array[x] << endl;
	}

	return 0;
}

Ausgabe:

Hier ist ein Screenshot des Codes:

Code-Erklärung:

  1. Fügen Sie die iostream-Header-Datei in unser Programm ein, um seine Funktionen zu nutzen.
  2. Fügen Sie den std-Namensraum in unser Programm ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  3. Rufen Sie die Funktion main() auf. Die Programmlogik sollte innerhalb des Hauptteils der Funktion hinzugefügt werden.
  4. Deklarieren Sie eine Integer-Variable namens x.
  5. Deklarieren Sie ein dynamisches Array namens array unter Verwendung einer Initialisierungsliste. Das Array enthält 5 ganzzahlige Elemente. Beachten Sie, dass wir den „=“-Operator zwischen der Array-Länge und der Initialisierungsliste nicht verwendet haben.
  6. Drucken Sie etwas Text auf der Konsole. Das endl ist ein C++-Schlüsselwort, das Endzeile bedeutet. Es bewegt den Cursor zum nächsten Satz.
  7. Verwenden Sie eine for-Schleife, um die Array-Elemente zu durchlaufen.
  8. Den Inhalt des Arrays namens array auf der Konsole ausgeben.
  9. Ende des Körpers der for-Schleife.
  10. Das Programm muss nach erfolgreichem Abschluss einen Wert zurückgeben.
  11. Ende des Hauptteils der main()-Funktion.

Größe von Arrays ändern

Die Länge eines dynamischen Arrays wird während der Zuweisungszeit festgelegt.

C++ hat jedoch keinen eingebauten Mechanismus zum Ändern der Größe eines Arrays, sobald es zugewiesen wurde.

Sie können diese Herausforderung jedoch überwinden, indem Sie ein neues Array dynamisch zuweisen, die Elemente kopieren und dann das alte Array löschen.

Hinweis:Diese Technik ist fehleranfällig, versuchen Sie daher, sie zu vermeiden.

Arrays dynamisch löschen

Ein dynamisches Array sollte aus dem Computerspeicher gelöscht werden, sobald es seinen Zweck erfüllt hat. Die delete-Anweisung kann Ihnen dabei helfen. Der freigegebene Speicherplatz kann dann verwendet werden, um einen anderen Datensatz zu halten. Aber selbst wenn Sie das dynamische Array nicht aus dem Computerspeicher löschen, wird es automatisch gelöscht, sobald das Programm beendet wird.

Hinweis:

Um ein dynamisches Array aus dem Computerspeicher zu löschen, sollten Sie delete[] anstelle von delete verwenden. Das [] weist die CPU an, mehrere Variablen statt einer Variablen zu löschen. Die Verwendung von delete anstelle von delete[] beim Umgang mit einem dynamischen Array kann zu Problemen führen. Beispiele für solche Probleme sind Speicherlecks, Datenbeschädigung, Abstürze usw.

Beispiel 3:

#include<iostream>
using namespace std;
int main() {
	int x, n;
	cout << "How many numbers will you type?" << "\n";
	cin >>n;
	int *arr = new int(n);
	cout << "Enter " << n << " numbers" << endl;
	for (x = 0; x < n; x++) {
		cin >> arr[x];
	}
	cout << "You typed: ";
	for (x = 0; x < n; x++) {
		cout << arr[x] << " ";
	}
	cout << endl;
	delete [] arr;
	return 0;
}

Ausgabe:

Hier ist ein Screenshot des Codes:

Code-Erklärung:

  1. Integrieren Sie die iostream-Header-Datei in unser Programm, um deren Funktionen zu nutzen.
  2. Nehmen Sie den std-Namensraum in unser Programm auf, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  3. Rufen Sie die Funktion main() auf. Die Programmlogik sollte innerhalb des Hauptteils der Funktion hinzugefügt werden.
  4. Deklarieren Sie zwei Variablen x und n vom Integer-Datentyp.
  5. Drucken Sie etwas Text auf der Konsole. Der Text fordert den Benutzer auf, die Anzahl der Zahlen anzugeben, die er eingeben wird.
  6. Lesen Sie Benutzereingaben von der Tastatur. Der Eingabewert wird der Variablen n zugewiesen.
  7. Deklarieren Sie eine Zeigervariable *arr. Das Array arr reserviert etwas Speicher, um insgesamt n Ganzzahlen zu speichern.
  8. Eine Meldung auf der Konsole ausgeben, die den Benutzer auffordert, n Zahlen einzugeben.
  9. Erstellen Sie eine for-Schleife und die Schleifenvariable x, um die vom Benutzer eingegebenen Zahlen zu durchlaufen.
  10. Lesen Sie die vom Benutzer eingegebenen Zahlen und speichern Sie sie im Array arr.
  11. Ende des Körpers der for-Schleife.
  12. Text auf der Konsole ausgeben.
  13. Verwenden Sie eine for-Schleife und die Schleifenvariable x, um über den Inhalt des Arrays arr zu iterieren.
  14. Die Werte des Arrays arr auf der Konsole ausgeben.
  15. Ende des Körpers der for-Schleife.
  16. Eine leere Zeile auf der Konsole ausgeben.
  17. Speicher des Arrays arr. freigeben
  18. Das Programm gibt einen Wert zurück, wenn es erfolgreich abgeschlossen wurde.
  19. Ende des Hauptteils der main()-Funktion.

Zusammenfassung:


C Sprache

  1. C#-Arrays
  2. Übergeben eines Arrays an eine Funktion in der C++-Programmierung
  3. C Dynamische Speicherzuweisung
  4. Arrays in C++ | Erklären | Initialisieren | Zeiger auf Array-Beispiele
  5. Operatoren in C++ mit Beispiel:Was ist, Typen und Programme
  6. C++ Switch Case-Anweisung mit BEISPIEL
  7. C++-Struktur mit Beispiel
  8. std::list in C++ mit Beispiel
  9. Unterschied zwischen Struktur und Klasse:Erklärt mit C++-Beispiel
  10. Auswahlsortierung im Java-Programm mit Beispiel