home | help
std::forwar...epend_range(3)   C++ Standard Libary  std::forwar...epend_range(3)

NAME
     std::forward_list::prepend_range - std::forward_list::prepend_range

Synopsis
	template< container-compatible-range<T> R >  (since C++23)
	void prepend_range( R&& rg );

	Inserts,  in  non-reversing  order,  copies of elements in rg before be-
     gin(). Each
	iterator in the range rg is dereferenced exactly once.

	No iterators or references are invalidated.

Parameters
	rg	  -	   a container compatible range, that is, an input_range
     whose
			   elements are convertible to T

Type requirements
	-
	T must	be  EmplaceConstructible  into	forward_list  from  *ranges::be-
     gin(rg). Otherwise,
	the behavior is undefined.

Return value
	(none)

Complexity
	Linear in size of rg.

Notes
	    Feature-test macro	     Value    Std		    Feature
	__cpp_lib_containers_ranges  202202L  (C++23)  Ranges-aware construction
     and insertion

Example
     // Run this code

      #include <algorithm>
      #include <cassert>
      #include <forward_list>
      #include <vector>

      int main()
      {
	  auto container = std::forward_list{0, 1, 2, 3};
	  const auto rg = std::vector{-3, -2, -1};

      #if __cpp_lib_containers_ranges
	  container.prepend_range(rg);
      #else
	  container.insert_after(container.before_begin(),	    rg.cbegin(),
     rg.cend());
      #endif
	  assert(std::ranges::equal(container,	std::forward_list{-3, -2, -1, 0,
     1, 2, 3}));
      }

See also
	insert_range	   inserts a range of elements
	(C++23) 	   (public member function)
	insert_range_after inserts a range of elements after an element
	(C++23) 	   (public member function)
	push_front	   inserts an element to the beginning
			   (public member function)
	emplace_front	   constructs an element in-place at the beginning
			   (public member function)

http://cppreference.com 	   2024.06.10	    std::forwar...epend_range(3)

home | help