C ++ - Bibliothek - <Vektor>

Einführung

Vektoren sind Sequenzcontainer, deren Größe sich ändern kann. Container ist ein Objekt, das Daten des gleichen Typs enthält. Sequenzcontainer speichern Elemente streng linear.

Der Vektor speichert Elemente an zusammenhängenden Speicherorten und ermöglicht den direkten Zugriff auf jedes Element mit dem Indexoperator []. Im Gegensatz zum Array kann der Vektor zur Laufzeit nach Bedarf verkleinert oder erweitert werden. Die Speicherung des Vektors erfolgt automatisch.

Um das Verkleinern und Erweitern der Funktionalität zur Laufzeit zu unterstützen, kann der Vektorcontainer zusätzlichen Speicher zuweisen, um ein mögliches Wachstum zu ermöglichen, sodass der Container eine tatsächliche Kapazität hat, die größer als die Größe ist. Daher verbraucht der Vektor im Vergleich zum Array mehr Speicher im Austausch für die Fähigkeit, Speicher zu verwalten und auf effiziente Weise dynamisch zu wachsen.

Vektoren mit der Größe Null sind ebenfalls gültig. In diesem Fall zeigen vector.begin () und vector.end () auf dieselbe Position. Das Verhalten beim Aufrufen von front () oder back () ist jedoch undefiniert.

Definition

Unten finden Sie die Definition von std :: vector aus der <vector> -Headerdatei

template < class T, class Alloc = allocator<T> > class vector;

Parameter

  • T - Typ des enthaltenen Elements.

    T kann durch einen anderen Datentyp einschließlich eines benutzerdefinierten Typs ersetzt werden.

  • Alloc - Typ des Allokatorobjekts.

    Standardmäßig wird die Allokatorklassenvorlage verwendet, die das einfachste Speicherzuordnungsmodell definiert und wertunabhängig ist.

Mitgliedertypen

Die folgenden Elementtypen können von Elementfunktionen als Parameter oder Rückgabetyp verwendet werden.

Sr.Nr. Mitgliedertypen Definition
1 Werttyp T (Erster Parameter der Vorlage)
2 allocator_type Alloc (Zweiter Parameter der Vorlage)
3 Referenz Werttyp&
4 const_reference const value_type &
5 Zeiger Werttyp*
6 const_pointer const value_type *
7 Iterator ein Iterator mit wahlfreiem Zugriff auf value_type
8 const_iterator ein Iterator mit wahlfreiem Zugriff auf const value_type
9 reverse_iterator std :: reverse_iterator <iterator>
10 const_reverse_iterator std :: reverse_iterator <const_iterator>
11 size_type size_t
12 Differenztyp ptrdiff_t

Funktionen von <vector>

Unten finden Sie eine Liste aller Methoden aus dem <vector> -Header.

Konstruktoren

Sr.Nr. Methode & Beschreibung
1 vector :: vector Standardkonstruktor

Erstellt einen leeren Container mit null Elementen.

2 vector :: vector fill Konstruktor

Konstruiert einen Behälter mit n Elementen und assignd val jedes Element.

3 vector :: vector range Konstruktor

Erstellt einen Container mit möglichst vielen Elementen im Bereich von Anfang bis Ende .

4 vector :: vector copy Konstruktor

Erstellt einen Container mit einer Kopie aller im vorhandenen Container x vorhandenen Elemente .

5 vector :: vector move Konstruktor

Konstruiert den Container mit dem Inhalt anderer mithilfe der Verschiebungssemantik .

6 vector :: vector initializer list Konstruktor

Erstellt einen Container aus der Initialisierungsliste.

Zerstörer

Sr.Nr. Methode & Beschreibung
1 vector :: ~ vector

Zerstört den Container durch Freigabe des Containerspeichers.

Mitgliedsfunktionen

Sr.Nr. Methode & Beschreibung
1 vector :: fülle die Füllversion zu

Weisen Sie den Vektorelementen neue Werte zu, indem Sie alte ersetzen.

2 vector :: Range-Version zuweisen

Weisen Sie den Vektorelementen neue Werte zu, indem Sie alte ersetzen.

3 vector :: Initialisiererlistenversion zuweisen

Weisen Sie den Vektorelementen neue Werte zu, indem Sie alte ersetzen.

4 vector :: at

Gibt den Verweis auf das Element zurück, das an Position n im Vektor vorhanden ist.

5 vector :: back

Gibt einen Verweis auf das letzte Element des Vektors zurück.

6 vector :: begin

Gibt einen Iterator mit wahlfreiem Zugriff zurück, der auf das erste Element des Vektors zeigt.

7 Vektor :: Kapazität

Gibt die Größe des zugewiesenen Speichers zurück, ausgedrückt in Elementen.

8 vector :: cbegin

Gibt einen konstanten Iterator mit wahlfreiem Zugriff zurück, der auf den Anfang des Vektors zeigt.

9 vector :: cend

Gibt einen konstanten Iterator mit wahlfreiem Zugriff zurück, der auf den Anfang des Vektors zeigt.

10 vector :: clear

Zerstört den Vektor, indem alle Elemente aus dem Vektor entfernt werden, und setzt die Größe des Vektors auf Null.

11 vector :: crbegin

Gibt einen konstanten Umkehriterator zurück, der auf den Umkehreranfang des Containers zeigt.

12 vector :: crend

Gibt einen konstanten umgekehrten Iterator zurück, der auf das umgekehrte Ende des Vektors zeigt.

13 vector :: data

Gibt einen Zeiger auf das erste Element des Vektorcontainers zurück.

14 vector :: emplace

Erweitert den Container durch Einfügen eines neuen Elements an der Position .

15 vector :: emplace_back

Fügt ein neues Element am Ende des Vektors ein.

16 vector :: leer

Testet, ob der Vektor leer ist oder nicht.

17 vector :: end

Gibt einen Iterator zurück, der auf das Element am Ende des Vektors im Vektorcontainer verweist .

18 vector :: erase position version

Entfernt ein einzelnes Element aus dem Vektor.

19 vector :: erase range version

Entfernt ein einzelnes Element aus dem Vektor.

20 vector :: front

Gibt einen Verweis auf das erste Element des Vektors zurück.

21 vector :: get_allocator

Gibt einen dem Vektor zugeordneten Allokator zurück.

22 vector :: Einzelelementversion einfügen

Erweitert den Iterator durch Einfügen eines neuen Elements an der Position.

23 Vektor :: insert fill Version

Erweitert den Vektor durch Einfügen eines neuen Elements in den Container.

24 vector :: insert range version

Erweitert den Vektor durch Einfügen eines neuen Elements in den Container.

25 vector :: insert move version

Erweitert den Vektor durch Einfügen eines neuen Elements in den Container.

26 vector :: Initialisierungslistenversion einfügen

Erweitert den Vektor durch Einfügen eines neuen Elements in den Container.

27 vector :: max_size

Gibt die maximale Anzahl von Elementen zurück, die von einem Vektor gehalten werden können.

28 vector :: operator = Version kopieren

Weisen Sie dem Vektor neue Inhalte zu, indem Sie alte ersetzen, und ändern Sie gegebenenfalls die Größe.

29 vector :: operator = Version verschieben

Weisen Sie dem Vektor neue Inhalte zu, indem Sie alte ersetzen, und ändern Sie gegebenenfalls die Größe.

30 vector :: operator = Version der Initialisierungsliste

Weisen Sie dem Vektor neue Inhalte zu, indem Sie alte ersetzen, und ändern Sie gegebenenfalls die Größe.

31 vector :: operator []

Gibt einen Verweis auf das an Position n vorhandene Element zurück .

32 vector :: pop_back

Entfernt das letzte Element aus dem Vektor und reduziert die Größe des Vektors um eins.

33 vector :: push_back

Fügt ein neues Element am Ende des Vektors ein und erhöht die Größe des Vektors um eins.

34 vector :: rbegin

Gibt einen umgekehrten Iterator zurück, der auf das letzte Element des Vektors zeigt.

35 vector :: rend

Gibt einen umgekehrten Iterator zurück, der auf das umgekehrte Ende des Vektors zeigt.

36 Vektor :: Reserve

Anforderungen zur Reservierung der Vektorkapazität reichen mindestens aus, um n Elemente zu enthalten .

37 vector :: resize

Ändert die Größe des Vektors.

38 vector :: shrink_to_fit

Fordert den Container auf, seine Kapazität an seine Größe anzupassen.

39 vector :: size

Gibt die Anzahl der im Vektor vorhandenen Elemente zurück.

40 vector :: swap

Tauscht den Inhalt des Vektors gegen den Inhalt des Vektors x aus .

Überladene Funktionen ohne Mitglieder

Sr.Nr. Methode & Beschreibung
1 operator ==

Testet, ob zwei Vektoren gleich sind oder nicht.

2 Operator! =

Testet, ob zwei Vektoren gleich sind oder nicht.

3 Operator <

Testet, ob der erste Vektor kleiner als der andere ist oder nicht.

4 Operator <=

Testet, ob der erste Vektor kleiner oder gleich dem anderen ist oder nicht.

5 Betreiber>

Testet, ob der erste Vektor größer als der andere ist oder nicht.

6 Operator> =

Testet, ob der erste Vektor größer oder gleich dem anderen ist oder nicht.

7 Tauschen

Tauscht den Inhalt von zwei Vektoren aus.