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

NAME
     std::multimap::insert_range - std::multimap::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.

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

	No iterators or references are invalidated.

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

Type requirements
	-
	value_type must be EmplaceConstructible into multimap from  *ranges::be-
     gin(rg).
	Otherwise, the behavior is undefined.

Return value
	(none)

Complexity
	NA.log(a.size() + N), where N is ranges::distance(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 <iostream>
      #include <map>
      #include <utility>

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

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

Output:
      {-2,-22} {-1,-11} {1,11} {2,22} {3,33} {3,-33} {4,44}

See also
	       inserts elements
	insert or nodes
	       (since C++17)
	       (public member function)

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

home | help