Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::inplace_vector<T,N>::try_push_back

      From cppreference.com
      <cpp‎ |container‎ |inplace vector
       
       
       
      std::inplace_vector
      Member types
      Member functions
      Non-member functions
       
      constexpr pointer try_push_back(const T& value);
      (1)(since C++26)
      constexpr pointer try_push_back( T&& value);
      (2)(since C++26)

      Conditionally appends the given elementvalue to the end of the container.

      Ifsize()== capacity() istrue, there are no effects. Otherwise, appends an object of typeT:

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

      No iterators or references are invalidated, exceptend(), which is invalidated if the insertion occurs.

      Contents

      [edit]Parameters

      value - the value of the element to append
      Type requirements
      -
      T must meet the requirements ofEmplaceConstructible.

      [edit]Return value

      std::addressof(back()) ifsize()< capacity(),nullptr otherwise.

      [edit]Complexity

      Constant.

      [edit]Exceptions

      Any exception thrown by initialization of inserted element.

      If an exception is thrown for any reason, these functions have no effect (strong exception safety guarantee).

      [edit]Notes

      This section is incomplete
      Reason: Explain the purpose of this API.

      [edit]Example

      Run this code
      #include <cassert>#include <inplace_vector>#include <string> int main(){std::inplace_vector<std::string,2> pets;std::string dog{"dog"}; std::string* p1= pets.try_push_back("cat");// overload (1)assert(*p1=="cat" and pets.size()==1); std::string* p2= pets.try_push_back(std::move(dog));// overload (2)assert(*p2=="dog" and pets.size()==2); assert(pets[0]=="cat" and pets[1]=="dog");assert(pets.size()== pets.capacity()); std::string* p3= pets.try_push_back("bug");assert(p3== nullptr and pets.size()==2);}

      [edit]See also

      adds an element to the end
      (public member function)[edit]
      constructs an element in-place at the end
      (public member function)[edit]
      adds a range of elements to the end
      (public member function)[edit]
      tries to construct an element in-place at the end
      (public member function)[edit]
      tries to add a range of elements to the end
      (public member function)[edit]
      unconditionally constructs an element in-place at the end
      (public member function)[edit]
      unconditionally adds an element to the end
      (public member function)[edit]
      removes the last element
      (public member function)[edit]
      creates astd::back_insert_iterator of type inferred from the argument
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/inplace_vector/try_push_back&oldid=176399"

      [8]ページ先頭

      ©2009-2026 Movatter.jp