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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::deque::insert_range	- std::deque::insert_range

Synopsis
	  template< container-compatible-range<T> R >		(since C++23)
	  iterator insert_range( const_iterator	pos, R&& rg );

	  Inserts,  in	non-reversing  order,  copies of elements in rg	before
       pos.

	  All iterators	(including the end() iterator) are invalidated.	Refer-
       ences are
	  invalidated too, unless pos == begin() or pos	 ==  end(),  in	 which
       case they are not
	  invalidated.

	  Each iterator	in the range rg	is dereferenced	exactly	once.

	  The behavior is undefined if rg overlaps with	the container.

Parameters
	  pos		  -		iterator before	which the content will
       be inserted
					(pos may be the	end() iterator)
	  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
	  An iterator that points at the copy of the  first  element  inserted
       into deque or at
	  pos if rg is empty.

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 <iterator>
	#include <deque>
	#include <list>

	int main()
	{
	    auto container = std::deque{1, 2, 3, 4};
	    auto pos = std::next(container.begin(), 2);
	    assert(*pos	== 3);
	    const auto rg = std::list{-1, -2, -3};

	#ifdef __cpp_lib_containers_ranges
	    container.insert_range(pos,	rg);
	#else
	    container.insert(pos, rg.cbegin(), rg.cend());
	#endif
	    assert(std::ranges::equal(container, std::deque{1, 2, -1, -2,  -3,
       3, 4}));
	}

See also
	  insert	inserts	elements
			(public	member function)
	  prepend_range	adds a range of	elements to the	beginning
	  (C++23)	(public	member function)
	  append_range	adds a range of	elements to the	end
	  (C++23)	(public	member function)

http://cppreference.com		  2024.06.10	   std::deque::insert_range(3)

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

home | help