Technologieaustausch

[Verliebe dich in C] Detaillierte Erklärung der Vektorverwendung

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Hallo ~ Klassenkameraden, dieser Artikel befasst sich mit dem Vektorcontainer in C. Als eines der am häufigsten verwendeten dynamischen Arrays in der Standard Template Library (STL) bietet Vector flexible Elementspeicherung und effiziente Zugriffsmethoden. Wir beginnen mit den Grundkenntnissen und lernen nach und nach die Vorgänge zum Erstellen, Initialisieren, Durchlaufen, Speicherplatzmanagement, Hinzufügen, Löschen, Überprüfen und Ändern. Wir hoffen, den Lesern durch detaillierte Beispiele und Analysen dabei zu helfen, die Fähigkeiten und Vorsichtsmaßnahmen für die Verwendung von Vector vollständig zu verstehen und zu beherrschen.

1: Einführung in den Vektor

Vektordokumentieren

  1. Ein Vektor ist ein Sequenzcontainer, der ein Array variabler Größe darstellt.
  2. Ebenso wie Arrays nutzen auch Vektoren kontinuierlichen Speicherplatz zum Speichern von Elementen. Dies bedeutet, dass Sie mithilfe von Indizes auf die Elemente des Vektors zugreifen können, was genauso effizient ist wie ein Array. Aber im Gegensatz zu einem Array kann seine Größe dynamisch geändert werden und seine Größe wird automatisch vom Container verwaltet.
  3. Im Wesentlichen verwendet Vector ein dynamisch zugewiesenes Array zum Speichern seiner Elemente. Wenn neue Elemente eingefügt werden, muss die Größe des Arrays geändert werden, um den Speicherplatz zu vergrößern. Dies geschieht durch die Zuweisung eines neuen Arrays und das anschließende Verschieben aller Elemente in dieses Array. Zeitlich gesehen ist dies eine relativ kostspielige Aufgabe, da die Größe des Vektors nicht jedes Mal geändert wird, wenn dem Container ein neues Element hinzugefügt wird.
  4. Vector-Speicherplatzstrategie: Vector weist etwas zusätzlichen Speicherplatz zu, um mögliches Wachstum zu berücksichtigen, da der Speicherplatz größer ist als der tatsächlich benötigte Speicherplatz. Verschiedene Bibliotheken verwenden unterschiedliche Strategien, um Platznutzung und Neuzuweisung auszugleichen. In jedem Fall sollte die Neuzuweisung jedoch in der Intervallgröße logarithmisch ansteigend erfolgen, sodass das Einfügen eines Elements am Ende in konstanter Zeit erfolgt.
  5. Daher beansprucht Vector mehr Speicherplatz, um den Speicherplatz verwalten und dynamisch und effizient wachsen zu können.
  6. Im Vergleich zu anderen dynamischen Sequenzcontainern (Deque, List und Forward_list) ist der Vektor beim Zugriff auf Elemente effizienter, und das Hinzufügen und Löschen von Elementen am Ende ist relativ effizient. Bei anderen Lösch- und Einfügevorgängen, die nicht am Ende stehen, ist die Effizienz noch geringer. Es ist besser, einheitliche Iteratoren und Referenzen zu verwenden als list und forward_list.


Es gibt drei Bereiche der Verwendung von STL: die Möglichkeit, es zu verwenden, es zu verstehen und es zu erweitern. Als nächstes werden wir auch dieser Methode folgen, um es zu lernen.

2: Erstellung und Initialisierung des Vektors

Header-Datei erforderlich#include