Arrays vs. Vektoren: Einführende Ähnlichkeiten und Unterschiede [geschlossen]

Was sind die Unterschiede zwischen einem Array und einem Vektor in C ++? Ein Beispiel für die Unterschiede können Bibliotheken, Symbolik, Fähigkeiten usw. sein.

Array

Arrays enthalten eine bestimmte Anzahl von Elementen eines bestimmten Typs. Damit der Compiler beim Kompilieren des Programms den erforderlichen Speicherplatz reservieren kann, müssen Sie den Typ und die Anzahl der Elemente angeben, die das Array enthalten soll, wenn es definiert wird. Der Compiler muss diesen Wert beim Kompilieren des Programms ermitteln können. Sobald ein Array definiert wurde, verwenden Sie den Bezeichner für das Array zusammen mit einem Index, um auf bestimmte Elemente des Arrays zuzugreifen. Arrays sind null-indiziert; Das heißt, das erste Element befindet sich auf Index 0. Dieses Indizierungsschema zeigt die enge Beziehung in C ++ zwischen Zeigern und Arrays und die Regeln an, die die Sprache für Zeigerarithmetik definiert.

- C ++ - Taschenreferenz

Vektor

Ein Vektor ist eine dynamisch bemessene Folge von Objekten, die einen Array-Stil bietetoperator[] zufälliger Zugriff. Die Mitgliedsfunktionpush_back kopiert seine Argumente über den Kopierkonstruktor, fügt diese Kopie als letztes Element im Vektor hinzu und erhöht ihre Größe um eins.pop_back tut genau das Gegenteil, indem das letzte Element entfernt wird. Das Einfügen oder Löschen von Elementen am Ende eines Vektors nimmt eine konstante Amortisationszeit in Anspruch, und das Einfügen oder Löschen an einer anderen Stelle nimmt eine lineare Zeit in Anspruch. Dies sind die Grundlagen von Vektoren. Sie haben viel mehr zu bieten. In den meisten Fällen sollte ein Vektor die erste Wahl gegenüber einem Array im C-Stil sein. Zuallererst sind sie dynamisch dimensioniert, was bedeutet, dass sie nach Bedarf wachsen können. Sie müssen nicht alle Arten von Nachforschungen anstellen, um eine optimale statische Größe zu ermitteln, wie dies bei C-Arrays der Fall ist. Ein Vektor wächst nach Bedarf und kann bei Bedarf manuell vergrößert oder verkleinert werden. Zweitens bieten Vektoren die Überprüfung der Grenzen mitat Mitgliedsfunktion (aber nicht mitoperator[]), damit Sie etwas tun können, wenn Sie auf einen nicht vorhandenen Index verweisen, anstatt einfach nur zu beobachten, wie Ihr Programm abstürzt oder schlimmer, und die Ausführung mit beschädigten Daten fortsetzen.

- C ++ Kochbuch

Antworten auf die Frage(3)

Ihre Antwort auf die Frage