home | help
std::flat_m...nsert_range(3)   C++ Standard Libary  std::flat_m...nsert_range(3)

NAME
     std::flat_multiset::insert_range - std::flat_multiset::insert_range

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

	Inserts a copy of each element in the range rg into underlying container
     c as if by:

      for (const auto& e : rg)
	  c.insert(c.end(), e);

	Then,  sorts  the  range of newly inserted elements with respect to com-
     pare. Merges the
	resulting sorted range and the sorted  range  of  pre-existing	elements
     into a single
	sorted range.

	Each iterator in the range rg is dereferenced exactly once. The behavior
     is
	undefined if rg overlaps with the container.

	 Information on iterator invalidation is copied from here

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

Return value
	(none)

Complexity
	N + MA.log(M),	where  N  is  size()  before  the  operation  and  M  is
     ranges::distance(rg).

Notes
	Since  insert_range performs an in-place merge operation, that may allo-
     cate memory.

Example
     // Run this code

      #include <iostream>
      #include <flat_set>

      void println(auto, auto const& container)
      {
	  for (const auto& elem : container)
	      std::cout << elem << ' ';
	  std::cout << '\n';
      }

      int main()
      {
	  auto container = std::flat_multiset{1, 3, 2, 4};
	  const auto rg = {-1, 3, -2};
      #ifdef __cpp_lib_containers_ranges
	  container.insert_range(rg);
      #else
	  container.insert(rg.begin(), rg.end());
      #endif
	  println("{}", container);
      }

Output:
      -2 -1 1 2 3 3 4

See also
	insert inserts elements
	       (public member function)

http://cppreference.com 	   2024.06.10	    std::flat_m...nsert_range(3)

home | help