std::vector<T,Allocator>::push_back
void push_back( const T& value );
|
(1) | (constexpr seit C++20) |
void push_back( T&& value );
|
(2) | (seit C++11) (constexpr seit C++20) |
Hängt das angegebene Element value an das Ende des Containers an.
value initialisiert.value wird in das neue Element verschoben.Falls nach der Operation die neue size() größer als die alte capacity() ist, findet eine Neubelegung statt, in welchem Fall alle Iteratoren (einschließlich des end()-Iterators) und alle Referenzen auf die Elemente ungültig werden. Andernfalls wird nur der end()-Iterator ungültig.
Parameter
| value | - | der Wert des anzuhängenden Elements |
|
(seit C++11) | ||||||
Rückgabewert
(kein)
Komplexität
Amortisiert konstant.
Ausnahmen
Wenn eine Exception ausgelöst wird (was aufgrund von
Allocator::allocate()
oder Element-Kopier-/Verschiebekonstruktor/-zuweisung geschehen kann), hat diese Funktion keine Wirkung (
starke Exception-Garantie
).
|
Wenn der Move-Konstruktor von
|
(seit C++11) |
Hinweise
Einige Implementierungen werfen
std::length_error
, wenn
push_back
eine Neuzuweisung verursacht, die
max_size
überschreitet (aufgrund eines impliziten Aufrufs eines Äquivalents von
reserve
(
size
() + 1))
.
Beispiel
#include <iomanip> #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> letters; letters.push_back("abc"); std::string s{"def"}; letters.push_back(std::move(s)); std::cout << "std::vector letters holds: "; for (auto&& e : letters) std::cout << std::quoted(e) << ' '; std::cout << "\nMoved-from string s holds: " << std::quoted(s) << '\n'; }
Mögliche Ausgabe:
std::vector letters holds: "abc" "def" Moved-from string s holds: ""
Siehe auch
|
(C++11)
|
Konstruiert ein Element direkt am Ende
(öffentliche Elementfunktion) |
|
entfernt das letzte Element
(öffentliche Elementfunktion) |
|
|
erstellt einen
std::back_insert_iterator
vom vom Argument abgeleiteten Typ
(Funktionstemplate) |