Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::deque<T,Allocator>::append_range

      From cppreference.com
      <cpp‎ |container‎ |deque

      [edit template]
       
       
       
      std::deque
      Member types
      Member functions
      Non-member functions
      (until C++20)(until C++20)(until C++20)(until C++20)(until C++20)
      Deduction guides(C++17)
       
      template<container-compatible-range<T> R>
      void append_range( R&& rg);
      (since C++23)
      (constexpr since C++26)

      Inserts copies of elements from the rangerg beforeend(), in non-reversing order.

      All iterators (including theend() iterator) are invalidated. No references are invalidated.

      Each iterator inrg is dereferenced exactly once.

      Contents

      [edit]Parameters

      rg - acontainer compatible range, that is, aninput_range whose elements are convertible toT
      Type requirements
      -
      IfT is notEmplaceConstructible intodeque from*ranges::begin(rg), the behavior is undefined.

      [edit]Complexity

      Linear in size ofrg. The number of calls to the constructor ofT is exactly equal to thestd::ranges::size(rg)).

      [edit]Exceptions

      If an exception is thrown other than by the copy constructor, move constructor, assignment operator, or move assignment operator ofT there are no effects. If an exception is thrown while inserting a single element at either end, there are no effects. Otherwise, if an exception is thrown by the move constructor of a non-CopyInsertableT, the effects are unspecified.

      Notes

      Feature-test macroValueStdFeature
      __cpp_lib_containers_ranges202202L(C++23)Ranges-aware construction and insertion

      [edit]Example

      Run this code
      #include <cassert>#include <deque>#include <list> int main(){auto head=std::deque{1,2,3,4};constauto tail=std::list{-5,-6,-7};#ifdef __cpp_lib_containers_ranges    head.append_range(tail);#else    head.insert(head.end(), tail.cbegin(), tail.cend());#endifassert((head==std::deque{1,2,3,4,-5,-6,-7}));}

      [edit]See also

      adds a range of elements to the beginning
      (public member function)
      inserts a range of elements
      (public member function)
      adds an element to the end
      (public member function)
      constructs an element in-place at the end
      (public member function)
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/deque/append_range&oldid=155588"

      [8]ページ先頭

      ©2009-2025 Movatter.jp