std::vector<T,Allocator>::push_back - cppreference.com (original) (raw)
| void push_back( const T& value ); | (1) | (constexpr since C++20) |
|---|---|---|
| void push_back( T&& value ); | (2) | (since C++11) (constexpr since C++20) |
Appends a copy of value to the end of the container.
If after the operation the new size() is greater than old capacity() a reallocation takes place, in which case all iterators (including the end() iterator) and all references to the elements are invalidated. Otherwise only the end() iterator is invalidated.
[edit] Parameters
| value | - | the value of the element to append |
|---|
| Type requirements -If the following condition is met, the behavior is undefined: | (since C++11) |
|---|
[edit] Complexity
Amortized constant.
[edit] Exceptions
If an exception is thrown (which can be due to Allocator::allocate() or element copy/move constructor/assignment), this function has no effect (strong exception guarantee).
| If the move constructor of T is not noexcept and T is not CopyInsertable into *this, vector will use the throwing move constructor. If it throws, the guarantee is waived and the effects are unspecified. | (since C++11) |
|---|
Notes
Some implementations throw std::length_error when push_back causes a reallocation that exceeds max_size (due to an implicit call to an equivalent of reserve(size() + 1)).
[edit] Example
Possible output:
std::vector letters holds: "abc" "def" Moved-from string s holds: ""