Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

NAME
       std::deque::prepend_range - std::deque::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.

	  All  iterators  (including  the  end() iterator) are invalidated. No
       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	deque from *ranges::begin(rg).
       Also, T must be
	  MoveInsertable into deque and	T satisfies MoveConstructible, MoveAs-
       signable, and
	  Swappable. 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  construc-
       tion and	insertion

Example
       // Run this code

	#include <algorithm>
	#include <cassert>
	#include <deque>
	#include <vector>

	int main()
	{
	    auto container = std::deque{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::deque{-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::deque::prepend_range(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::deque::prepend_range&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help