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

NAME
     std::deque::assign_range - std::deque::assign_range

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

	Replaces elements in the container with a copy of each element in rg.

	All  iterators	(including the end() iterator) and all references to the
     elements are
	invalidated.

	Each iterator in the range rg is dereferenced exactly once.

	The behavior is undefined if rg overlaps with the container.

Parameters
	rg	 -	 an input_range with reference type convertible  to  the
     element type
			 of the container

Type requirements
	-
	std::assignable_from<T&,  ranges::range_reference_t<R>> must be modeled.
     Otherwise,
	the program is ill-formed.
	-
	T must be EmplaceConstructible	into  the  container  from  *ranges::be-
     gin(rg).
	Otherwise, the behavior is undefined.

Return value
	(none)

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

      int main()
      {
	  const auto source = std::list{2, 7, 1};
	  auto destination = std::deque{3, 1, 4};
      #ifdef __cpp_lib_containers_ranges
	  destination.assign_range(source);
      #else
	  destination.assign(source.cbegin(), source.cend());
      #endif
	  assert(std::ranges::equal(source, destination));
      }

See also
	insert_range  inserts a range of elements
	(C++23)       (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)
	assign	      assigns values to the container
		      (public member function)

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

home | help