std::vector::push_back

void push_back( const T& value );
(1)
void push_back( T&& value );
(2) (since C++11)

Appends the given element value to the end of the container.

1) The new element is initialized as a copy of value.
2) value is moved into the new element.

If the new size() is greater than capacity() then all iterators and references (including the past-the-end iterator) are invalidated. Otherwise only the past-the-end iterator is invalidated.

Parameters

value - the value of the element to append
Type requirements
- T must meet the requirements of CopyInsertable in order to use overload (1).
- T must meet the requirements of MoveInsertable in order to use overload (2).

Return value

(none).

Complexity

Amortized constant.

Exceptions

If an exception is thrown, this function has no effect (strong exception guarantee).

If T's move constructor 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)

Example

#include <vector>
#include <iostream>
#include <iomanip>
 
int main()
{
    std::vector<std::string> numbers;
 
    numbers.push_back("abc");
    std::string s = "def";
    numbers.push_back(std::move(s));
 
    std::cout << "vector holds: ";
    for (auto&& i : numbers) std::cout << std::quoted(i) << ' ';
    std::cout << "\nMoved-from string holds " << std::quoted(s) << '\n';
}

Output:

vector holds: "abc" "def" 
Moved-from string holds ""

See also

(C++11)
constructs an element in-place at the end
(public member function)
removes the last element
(public member function)
doc_CPP
2016-10-11 10:08:19
Comments
Leave a Comment

Please login to continue.