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

NAME
     std::unordered_multimap::insert_range     -    std::unordered_multimap::in-
     sert_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.

	If after the operation the new number of elements is greater than old
	max_load_factor() * bucket_count() a rehashing takes place.
	If rehashing occurs (due to the insertion), all  iterators  are  invali-
     dated. Otherwise
	(no rehashing), iterators are not 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 unordered_multimap from
	*ranges::begin(rg). Otherwise, the behavior is undefined.

Return value
	(none)

Complexity
	Average   case	 O(N),	where  N  is  ranges::distance(rg),  worst  case
     O(NA.(a.size() + 1)).

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 <unordered_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::unordered_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);
      }

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

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

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

home | help