home | help
std::list::prepend_range(3)    C++ Standard Libary   std::list::prepend_range(3)

NAME
     std::list::prepend_range - std::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 ele-
     ments are
		convertible to T

Type requirements
	-
	T must be EmplaceConstructible into list from *ranges::begin(rg). Other-
     wise, 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 <list>
      #include <vector>

      int main()
      {
	  auto container = std::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(container.begin(), rg.cbegin(), rg.cend());
      #endif
	  assert(std::ranges::equal(container,	std::list{-3,  -2,  -1, 0, 1, 2,
     3}));
      }

See also
	append_range  adds a range of elements to the end
	(C++23)       (public member function)
	insert_range  inserts a range of elements
	(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
	(C++11)       (public member function)

http://cppreference.com 	   2024.06.10	     std::list::prepend_range(3)

home | help