table of contents
        
      
      
    | std::vector::push_back(3) | C++ Standard Libary | std::vector::push_back(3) | 
NAME¶
std::vector::push_back - std::vector::push_back
Synopsis¶
 void push_back( const T& value ); (until C++20)
  
   constexpr void push_back( const T& value ); (since C++20)
  
   void push_back( T&& value ); (1) (since C++11)
  
   (2) (until C++20)
  
   constexpr void push_back( T&& value ); (since C++20)
  
   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 (which can be due to
    Allocator::allocate() or element
  
   copy/move constructor/assignment), 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 (since
    C++11)
  
   throws, the guarantee is waived and the effects are unspecified.
Notes¶
 Calling push_back will cause reallocation (when size()+1 >
    capacity()), so some
  
   implementations also throw std::length_error when push_back causes a
    reallocation
  
   that would exceed max_size (due to implicitly calling an equivalent of
  
   reserve(size()+1)).
Example¶
// Run this code
  
   #include <vector>
  
   #include <iostream>
  
   #include <iomanip>
  
   #include <string>
  
   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';
  
   }
Possible output:¶
 std::vector `letters` holds: "abc" "def"
  
   Moved-from string `s` holds: ""
See also¶
 emplace_back constructs an element in-place at the end
  
   (C++11) (public member function)
  
   pop_back removes the last element
  
   (public member function)
  
   back_inserter creates a std::back_insert_iterator of type inferred from the
    argument
  
   (function template)
| 2022.07.31 | http://cppreference.com |