Unordered associative container mapping keys to values, allowing duplicates.
Declared in <bslstl_unorderedmultimap.h>
template<
class KEY,
class VALUE,
class HASH = bsl::hash<KEY>,
class EQUAL = bsl::equal_to<KEY>,
class ALLOCATOR = bsl::allocator<bsl::pair<KEY const, VALUE>>>
class unordered_multimap;
This class template implements a value-semantic container type holding a collection of (possibly equivalent) keys (of the template parameter type KEY), each mapped to their associated values (of another template parameter type VALUE).
This class: * supports a complete set of value-semantic operations
except for BDEX serialization * is exception-neutral (agnostic except for the at method) * is alias-safe * is const thread-safe For terminology see {bsldoc_glossary}.
| Name | Description |
|---|---|
allocator_type | This typedef is an alias for allocator_type. |
const_iterator | This typedef is an alias for const_iterator. |
const_local_iterator | This typedef is an alias for const_local_iterator. |
const_pointer | This typedef is an alias to AllocatorTraits::const_pointer. |
const_reference | This typedef is an alias for const_reference. |
difference_type | This typedef is an alias for difference_type. |
hasher | This typedef is an alias to the (template parameter) HASH. |
iterator | This typedef is an alias for iterator. |
key_equal | This typedef is an alias for key_equal. |
key_type | This typedef is an alias for key_type. |
local_iterator | This typedef is an alias for local_iterator. |
mapped_type | This typedef is an alias for mapped_type. |
pointer | This typedef is an alias for pointer. |
reference | This typedef is an alias to value_type&. |
size_type | This typedef is an alias for size_type. |
value_type | This typedef is an alias to bsl::pair<const KEY, VALUE>. |
| Name | Description |
|---|---|
unordered_multimap [constructor] | Constructors |
~unordered_multimap [destructor] | Destroy this object. |
operator= | Assignment operators |
begin | begin overloads |
bucket | bucket overloads |
bucket_count | Return the number of buckets in the array of buckets maintained by this unordered multimap. |
bucket_size | Return the number of elements in the bucket at index. |
cbegin | cbegin overloads |
cend | cend overloads |
clear | Remove all entries from this unordered multimap. Note that this object will be empty after this call, but allocated memory may be retained for future use. |
contains | Return true if this container has an element with key equivalent to key. |
count | Return the number of elements with a key equivalent to key. |
emplace | Emplace a newly constructed element into this container. |
emplace_hint | Emplace a newly constructed element near hint. |
empty | Return true if this unordered multimap contains no elements, and false otherwise. |
end | end overloads |
equal_range | Return an iterator pair covering elements with key equivalent to key. |
erase | erase overloads |
find | Return an iterator to the first element with key equivalent to key. |
get_allocator | Return (a copy of) the allocator used for memory allocation by this unordered multimap. |
hash_function | Return (a copy of) the hash unary functor used by this unordered multimap to generate a hash value (of type size_type) for a key_type object. |
insert | insert overloads |
insert_range | Insert each element from the specified range. |
key_eq | Return (a copy of) the key-equivalence binary functor that returns true if the value of two key_type objects are equivalent, and false otherwise. |
load_factor | Return the current load factor of this container. |
max_bucket_count | Return a theoretical upper bound on the number of buckets. |
max_load_factor | max_load_factor overloads |
max_size | Return a theoretical upper bound on the number of elements. |
rehash | Rehash this container to have at least numBuckets buckets. |
reserve | Reserve capacity for at least numElements without rehashing. |
size | Return the number of elements in this unordered multimap. |
swap | Exchange the contents of this object with those of other. |
| Name | Description |
|---|---|
unordered_multimap<KEY, VALUE> | Deduce template arguments from an initializer-list constructor. |
unordered_multimap<KEY, VALUE> | Deduce template arguments from an initializer-list constructor. |
unordered_multimap<KEY, VALUE> | Deduce template arguments from an initializer-list constructor. |
unordered_multimap<KEY, VALUE> | Deduce template arguments from iterators with size and bslma allocator. |
unordered_multimap<KEY, VALUE, HASH> | Deduce template arguments from an initializer-list constructor. |
unordered_multimap<KEY, VALUE, HASH> | Deduce template arguments from a constructor taking a bslma allocator. |
unordered_multimap<KEY, VALUE, HASH, EQUAL> | Deduce template arguments from an initializer-list constructor. |
unordered_multimap<KEY, VALUE, HASH, EQUAL> | Deduce template arguments from a constructor taking a bslma allocator. |
unordered_multimap<KEY, VALUE, HASH, EQUAL, ALLOCATOR> | Deduce template arguments from an initializer-list constructor. |
unordered_multimap<KEY, VALUE, HASH, EQUAL, ALLOCATOR> | Deduce template arguments for an unordered_multimap constructor. |
unordered_multimap<KEY, VALUE, HASH, bsl::equal_to<KEY>, ALLOCATOR> | Deduce template arguments from an initializer-list constructor. |
unordered_multimap<KEY, VALUE, HASH, bsl::equal_to<KEY>, ALLOCATOR> | Deduce template arguments for an unordered_multimap constructor. |
unordered_multimap<KEY, VALUE, bsl::hash<KEY>, bsl::equal_to<KEY>, ALLOCATOR> | Deduce template arguments from an initializer-list constructor. |
unordered_multimap<KEY, VALUE, bsl::hash<KEY>, bsl::equal_to<KEY>, ALLOCATOR> | Deduce template arguments from an initializer-list constructor. |
unordered_multimap<KEY, VALUE, bsl::hash<KEY>, bsl::equal_to<KEY>, ALLOCATOR> | Deduce template arguments for an unordered_multimap constructor. |
unordered_multimap<KEY, VALUE, bsl::hash<KEY>, bsl::equal_to<KEY>, ALLOCATOR> | Deduce template arguments for an unordered_multimap constructor. |
| Name | Description |
|---|---|
bsl::operator== | Return true if lhs and rhs have the same value. |
| Name | Description |
|---|---|
erase_if | Erase every element of m that satisfies predicate. |
operator== | Return true if lhs and rhs have the same value. |
swap | Exchange the value of a with that of b. |