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. |