std::vector
definiert in Header <vector> | ||
template< class T, | ||
std::vector
ist ein sequentieller Container, der Arrays dynamischer Größe kapselt.
Die Elemente werden zusammenhängend gespeichert, was bedeutet, dass auf die Elemente nicht nur durch Iteratoren zugegriffen werden kann, sondern auch mit Offsets auf reguläre Zeiger auf Elemente. Dies bedeutet, dass ein Zeiger auf ein Element eines Vektors an eine beliebige Funktion übergeben werden kann, die einen Zeiger auf ein Element eines Array erwartet.
Der Speicherplatz des Vektors wird automatisch angepasst, er wird je nach Bedarf erweitert und verkleinert. Vektoren belegen in der Regel mehr Platz als statische Arrays, weil mehr Speicher zugewiesen wird um zukünftiges Wachstum zu behandeln. Auf diese Weise muss der Speicher eines Vektor nicht jedes Mal neu alloziert werden, wenn ein Element hinzugefügt wird, sondern nur, wenn der zusätzliche Speicher erschöpft ist. Die Größe des allozierten Speichers kann mit der Methode capacity()
abgefragt werden. Zusätzlicher Speicher kann dem System über einen Aufruf von shrink_to_fit()
zurückgegeben werden.
Um kostspielige Reallokationen zu vermeiden, kann der Speicher mit reserve()
vorallokiert werden, wenn die Anzahl von Elementen im voraus bekannt ist.
Die Komplexität (Wirkungsgrad) der gemeinsamen Operationen auf Vektoren ist wie folgt:
- Random Access - konstant O(1)
- Das Einsetzen oder Entfernen von Elementen am Ende - durchschnittlich konstant O(1)
- Einsetzen oder Entfernen von Elementen - linear zum Abstand des Vektorendes O(n)
std::vector
erfüllt die Anforderungen der Container
, AllocatorAwareContainer
, SequenceContainer
und ReversibleContainer
.
[Bearbeiten]Spezialisierungen
Die Standard-Bibliothek bietet eine Spezialisierung von std::vector
für den Datentyp bool, die in Bezug auf Speicherplatz optimiert ist.
platzsparendes dynamisches Bitset (Klassen-Template) |
[Bearbeiten]Mitglied Typen
Mitglied Typ Original: Member type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | Definition |
value_type | T |
allocator_type | Allocator |
size_type | vorzeichenloser ganzzahliger Typ (in der Regel size_t) |
difference_type | vorzeichenbehafteter Typ (usually ptrdiff_t) |
reference | Allocator::reference (bis C + +11)value_type& (seit C++11) |
const_reference | Allocator::const_reference (bis C + +11)const value_type& (seit C++11) |
pointer | Allocator::pointer (bis C + +11)std::allocator_traits<Allocator>::pointer(seit C++11) |
const_pointer | Allocator::const_pointer(bis C + +11) std::allocator_traits<Allocator>::const_pointer(seit C++11) |
iterator | RandomAccessIterator |
const_iterator | Constant random access iterator Original: Constant random access iterator The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
reverse_iterator | std::reverse_iterator<iterator> |
const_reverse_iterator | std::reverse_iterator<const_iterator> |
[Bearbeiten]Member-Funktionen
konstruiert die vector (öffentliche Elementfunktion) | |
zerstört die vector (öffentliche Elementfunktion) | |
weist Werte auf den Behälter Original: assigns values to the container The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
weist Werte auf den Behälter Original: assigns values to the container The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
liefert den zugehörigen Allocator (öffentliche Elementfunktion) | |
Elementzugriff | |
Zugriff auf angegebene Element mit Überprüfung von Grenzen Original: access specified element with bounds checking The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Zugriff auf angegebene Element Original: access specified element The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Zugriff auf das erste Element Original: access the first element The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Zugriff auf das letzte Element (öffentliche Elementfunktion) | |
(C++11) | Direkter Zugang zu dem zugrundeliegenden Array (öffentliche Elementfunktion) |
Original: Iterators The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
liefert einen Iterator an den Anfang Original: returns an iterator to the beginning The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
liefert einen Iterator bis zum Ende Original: returns an iterator to the end The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
gibt einen umgekehrten Iterator an den Anfang Original: returns a reverse iterator to the beginning The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
gibt einen umgekehrten Iterator bis zum Ende Original: returns a reverse iterator to the end The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Original: Capacity The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
prüft, ob der Container leer ist Original: checks whether the container is empty The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
liefert die Anzahl der Elemente Original: returns the number of elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
gibt die maximal mögliche Anzahl von Elementen Original: returns the maximum possible number of elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
reserviert Speicher (öffentliche Elementfunktion) | |
gibt die Anzahl der Elemente, die in derzeit zugewiesenen Speicher gehalten werden kann Original: returns the number of elements that can be held in currently allocated storage The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
(C++11) | verringert den Speicherbedarf durch Freigeben ungenutzten Speichers (öffentliche Elementfunktion) |
Original: Modifiers The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
löscht den Inhalt Original: clears the contents The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Elemente einfügen Original: inserts elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
(C++11) | constructs element in-place (öffentliche Elementfunktion) |
löscht Elemente Original: erases elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
fügt Elemente am Ende Original: adds elements to the end The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
(C++11) | baut Elemente-Platz am Ende Original: constructs elements in-place at the end The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) |
entfernt das letzte Element Original: removes the last element The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
ändert die Anzahl der gespeicherten Elemente (öffentliche Elementfunktion) | |
tauscht die Inhalte Original: swaps the contents The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) |
[Bearbeiten]Non-Member-Funktionen
lexikographischer Vergleich der Werte in vector (Funktions-Template) | |
spezialisiert die std::swap Algorithmus Original: specializes the std::swap algorithm The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Funktions-Template) |