std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>:: unordered_multimap
| (1) | ||
| 
           
            unordered_multimap
            
             (
            
            
             )
            
             : unordered_multimap ( size_type ( /* implementation-defined */ ) ) { } | (since C++11) (until C++20) | |
| 
           
            unordered_multimap
            
             (
            
            
             )
            
            
             ;
            
           
           | (since C++20) | |
| 
           
            
             explicit
            
            unordered_multimap
            
             (
            
            size_type bucket_count,
             
             
              const
             
             Hash
             
              &
             
             hash
             
              =
             
             Hash
             
              (
             
             
              )
             
             ,
              | (2) | (since C++11) | 
| 
           
            unordered_multimap
            
             (
            
            size_type bucket_count,
             
             
              const
             
             Allocator
             
              &
             
             alloc
             
              )
             
              | (3) | (since C++14) | 
| 
           
            unordered_multimap
            
             (
            
            size_type bucket_count,
             
             
              const
             
             Hash
             
              &
             
             hash,
              | (4) | (since C++14) | 
| 
           
            
             explicit
            
            unordered_multimap
            
             (
            
            
             const
            
            Allocator
            
             &
            
            alloc
            
             )
            
            
             ;
            
           
           | (5) | (since C++11) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            InputIt
            
             >
            
             
             unordered_multimap
             
              (
             
             InputIt first, InputIt last,
              | (6) | (since C++11) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            InputIt
            
             >
            
             
             unordered_multimap
             
              (
             
             InputIt first, InputIt last,
              | (7) | (since C++14) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            InputIt
            
             >
            
             
             unordered_multimap
             
              (
             
             InputIt first, InputIt last,
              | (8) | (since C++14) | 
| 
           
            unordered_multimap
            
             (
            
            
             const
            
            unordered_multimap
            
             &
            
            other
            
             )
            
            
             ;
            
           
           | (9) | (since C++11) | 
| 
           
            unordered_multimap
            
             (
            
            
             const
            
            unordered_multimap
            
             &
            
            other,
            
             const
            
            Allocator
            
             &
            
            alloc
            
             )
            
            
             ;
            
           
           | (10) | (since C++11) | 
| 
           
            unordered_multimap
            
             (
            
            unordered_multimap
            
             &&
            
            other
            
             )
            
            
             ;
            
           
           | (11) | (since C++11) | 
| 
           
            unordered_multimap
            
             (
            
            unordered_multimap
            
             &&
            
            other,
            
             const
            
            Allocator
            
             &
            
            alloc
            
             )
            
            
             ;
            
           
           | (12) | (since C++11) | 
| 
           
            unordered_multimap
            
             (
            
            
             
              std::
              
               initializer_list
              
             
            
            
             <
            
            value_type
            
             >
            
            init,
             
             size_type bucket_count
             
              =
             
             
              /* implementation-defined */
             
             ,
              | (13) | (since C++11) | 
| 
           
            unordered_multimap
            
             (
            
            
             
              std::
              
               initializer_list
              
             
            
            
             <
            
            value_type
            
             >
            
            init,
             
             size_type bucket_count,
              | (14) | (since C++14) | 
| 
           
            unordered_multimap
            
             (
            
            
             
              std::
              
               initializer_list
              
             
            
            
             <
            
            value_type
            
             >
            
            init,
             
             size_type bucket_count,
              | (15) | (since C++14) | 
| 
           
           
           
            
             template
            
            
             <
            
            
             
              container-compatible-range
             
            
            
             <
            
            value_type
            
             >
            
            R
            
             >
            
             
             unordered_multimap
             
              (
             
             
              
               std::
               
                from_range_t
               
              
             
             , R
             
              &&
             
             rg,
              | (16) | (since C++23) | 
| 
           
            
             template
            
            
             <
            
            
             
              container-compatible-range
             
            
            
             <
            
            value_type
            
             >
            
            R
            
             >
            
             
             unordered_multimap
             
              (
             
             
              
               std::
               
                from_range_t
               
              
             
             , R
             
              &&
             
             rg,
              | (17) | (since C++23) | 
| 
           
            
             template
            
            
             <
            
            
             
              container-compatible-range
             
            
            
             <
            
            value_type
            
             >
            
            R
            
             >
            
             
             unordered_multimap
             
              (
             
             
              
               std::
               
                from_range_t
               
              
             
             , R
             
              &&
             
             rg,
              | (18) | (since C++23) | 
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 allocator.
         [
        
        
         
          first
         
        
        
         ,
        
        
         
          last
         
        
        
         )
        
       
       . Sets
       
        
         max_load_factor()
        
       
       to
       
        
         
          1.0
         
        
       
       .
      | 
           The template parameter
            | (since C++23) | 
| 
           The template parameter
            | (since C++23) | 
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 
           [
          first
           ,
          last
           )
          to copy the elements from | 
| rg | - | a
         
          container compatible range
         
         , that is, an 
           input_range
          whose elements are convertible to
           value_type
           | 
| 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
Exceptions
       Calls to
       
        Allocator::allocate
       
       may throw.
      
Notes
       other
      
      remain valid, but refer to elements that are now in
      
       
        
         *
        
        this
       
      
      . The current standard makes this guarantee via the blanket statement in
      
       [container.reqmts]/67
      
      , and a more direct guarantee is under consideration via
      
       LWG issue 2321
      
      .
      
       Although not formally required until C++23, some implementations have already put the template parameter
       
        Allocator
       
       into
       
        non-deduced contexts
       
       in earlier modes.
      
| Feature-test macro | Value | Std | Feature | 
|---|---|---|---|
| 
           __cpp_lib_containers_ranges
           | 202202L | (C++23) | Ranges-aware construction and insertion; overloads ( 16-18 ) | 
Example
| This section is incomplete Reason: no example | 
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior | 
|---|---|---|---|
| LWG 2193 | C++11 | the default constructor (1) was explicit | made non-explicit | 
See also
| assigns values to the container (public member function) |