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 eine Kopie von value am Ende des Containers an.
Falls nach der Operation die neue
size()
größer ist als die alte
capacity()
, findet eine Neuzuweisung statt, bei der alle Iteratoren (einschließlich des
end()
-Iterators) und alle Referenzen auf die Elemente ungültig werden. Andernfalls wird nur der
end()
-Iterator ungültig.
Inhaltsverzeichnis |
Parameter
| value | - | der Wert des anzuhängenden Elements |
|
(seit C++11) | ||||||
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) |