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: ""

[edit] See also