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

FreeBSD Manual Pages

  
 
  

home | help
std::unorde...red_multimap(3) C++ Standard Libarystd::unorde...red_multimap(3)

NAME
       std::unordered_multimap::unordered_multimap    -	   std::unordered_mul-
       timap::unordered_multimap

Synopsis
	  unordered_multimap() : unordered_multimap(
	  size_type(/*implementation-defined*/)	) {}

	  explicit	unordered_multimap(	 size_type	 bucket_count,
       (1) (since C++11)
	  const	Hash& hash = Hash(),
	  const	key_equal& equal = key_equal(),

	  const	Allocator& alloc = Allocator() );
	  unordered_multimap( size_type	bucket_count,

	  const	Allocator& alloc )
	  : unordered_multimap(bucket_count, Hash(), key_equal(), alloc) {}
	  unordered_multimap(		   size_type		 bucket_count,
       (1) (since C++14)
	  const	Hash& hash,
	  const	Allocator& alloc )

	  : unordered_multimap(bucket_count, hash, key_equal(),	alloc) {}
	  explicit   unordered_multimap(    const    Allocator&	   alloc    );
       (1) (since C++11)
	  template< class InputIt >

	  unordered_multimap( InputIt first, InputIt last,
	  size_type	  bucket_count	    =	   /*implementation-defined*/,
       (2) (since C++11)
	  const	Hash& hash = Hash(),
	  const	key_equal& equal = key_equal(),

	  const	Allocator& alloc = Allocator() );
	  template< class InputIt >

	  unordered_multimap( InputIt first, InputIt last,
	  size_type						 bucket_count,
       (2) (since C++14)
	  const	Allocator& alloc )
	  : unordered_multimap(first, last,

	  bucket_count,	Hash(),	key_equal(), alloc) {}
	  template< class InputIt >

	  unordered_multimap( InputIt first, InputIt last,
	  size_type bucket_count,
	  const				  Hash&				 hash,
       (2) (since C++14)
	  const	Allocator& alloc )
	  : unordered_multimap(first, last,

	  bucket_count,	hash, key_equal(), alloc) {}
	  unordered_multimap(	 const	  unordered_multimap&	  other	    );
       (3) (since C++11)
	  unordered_multimap(	 const	  unordered_multimap&	other,	 const
       (3) (since C++11)
	  Allocator& alloc );
	  unordered_multimap(	    unordered_multimap&&       other	    );
       (4) (since C++11)
	  unordered_multimap(  unordered_multimap&&  other,  const  Allocator&
       (4) (since C++11)
	  alloc	);
	  unordered_multimap( std::initializer_list<value_type>	init,

	  size_type bucket_count = /*implementation-defined*/,
	  const		  Hash&		  hash		  =	       Hash(),
       (5) (since C++11)
	  const	key_equal& equal = key_equal(),

	  const	Allocator& alloc = Allocator() );
	  unordered_multimap( std::initializer_list<value_type>	init,

	  size_type bucket_count,
	  const		       Allocator&		 alloc		     )
       (5) (since C++14)
	  : unordered_multimap(init, bucket_count,

	  Hash(), key_equal(), alloc) {}
	  unordered_multimap( std::initializer_list<value_type>	init,

	  size_type bucket_count,
	  const				 Hash&				 hash,
       (5) (since C++14)
	  const	Allocator& alloc )
	  : unordered_multimap(init, bucket_count,

	  hash,	key_equal(), alloc) {}

	  Constructs  new container from a variety of data sources. Optionally
       uses user
	  supplied bucket_count	as a minimal number of buckets to create, hash
       as the hash
	  function, equal as the function to compare keys and alloc as the al-
       locator.

	  1) Constructs	empty container. Sets max_load_factor()	 to  1.0.  For
       the default
	  constructor, the number of buckets is	implementation-defined.
	  2)  constructs  the container	with the contents of the range [first,
       last). Sets
	  max_load_factor() to 1.0.
	  3) copy constructor. Constructs the container	with the copy  of  the
       contents	of
	  other,  copies the load factor, the predicate, and the hash function
       as well.	If
	  alloc	is not provided, allocator is obtained by calling
	  std::allocator_traits<allocator_type>::select_on_container_copy_con-
       struction(other.get_allocator()).

	  The template parameter Allocator is  only  deduced  from  the	 first
       (since C++23)
	  argument while used in class template	argument deduction.

	  4)  move  constructor. Constructs the	container with the contents of
       other using move
	  semantics. If	alloc is not provided, allocator is obtained by	 move-
       construction from
	  the allocator	belonging to other.

	  The  template	 parameter  Allocator  is  only	deduced	from the first
       (since C++23)
	  argument while used in class template	argument deduction.

	  5) constructs	the container with the	contents  of  the  initializer
       list init, same as
	  unordered_multimap(init.begin(), init.end()).

Parameters
	  alloc		-  allocator to	use for	all memory allocations of this
       container
	  bucket_count - minimal number	of buckets to use  on  initialization.
       If it is	not
			 specified,  implementation-defined  default  value is
       used
	  hash	       - hash function to use
	  equal	       - comparison function to	use for	all key	comparisons of
       this container
	  first, last  - the range to copy the elements	from
	  other	       - another container to be used as source	to  initialize
       the elements of
			 the container with
	  init		-  initializer	list to	initialize the elements	of the
       container with

Type requirements
	  -
	  InputIt must meet the	requirements of	LegacyInputIterator.

Complexity
	  1) constant
	  2) average case linear worst	case  quadratic	 in  distance  between
       first and last
	  3) linear in size of other
	  4)  constant.	 If alloc is given and alloc !=	other.get_allocator(),
       then linear.
	  5) average case linear worst case quadratic in size of init

Exceptions
	  Calls	to Allocator::allocate may throw.

Notes
	  After	container move construction (overload (4)), references,	point-
       ers, and
	  iterators (other than	the end	iterator) to other remain  valid,  but
       refer to	elements
	  that are now in *this. The current standard makes this guarantee via
       the blanket
	  statement  in	[container.requirements.general]/12, and a more	direct
       guarantee is
	  under	consideration via LWG 2321.

	  Although not formally	required until C++23, some implementations has
       already put the
	  template parameter Allocator into non-deduced	 contexts  in  earlier
       modes.

Example
	   This	section	is incomplete
	   Reason: no example

	 Defect	reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	     DR	    Applied to	      Behavior as published	   Correct be-
       havior
	  LWG 2193 C++11      the default constructor is explicit made non-ex-
       plicit

See also
	  operator= assigns values to the container
	  (C++11)   (public member function)

http://cppreference.com		  2022.07.31	 std::unorde...red_multimap(3)

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

home | help