[#bsl-unordered_multiset-06c] = xref:bsl.adoc[bsl]::unordered_multiset :relfileprefix: ../ :mrdocs: This class template implements a value‐semantic container type holding an unordered multiset of values (of template parameter type `KEY`). == Synopsis Declared in `<bslstl_unorderedmultiset.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class KEY, class HASH = xref:bsl/hash-06.adoc[bsl::hash<KEY>], class EQUAL = xref:bsl/equal_to-0d.adoc[bsl::equal_to<KEY>], class ALLOCATOR = xref:bsl/allocator-0df.adoc[bsl::allocator<KEY>]> class unordered_multiset; ---- == Description 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`}. == Type Aliases [cols="1,4"] |=== | Name| Description | xref:bsl/unordered_multiset-06c/allocator_type.adoc[`allocator_type`] | This `typedef` is an alias to the (template parameter) `ALLOCATOR`. | xref:bsl/unordered_multiset-06c/const_iterator.adoc[`const_iterator`] | This `typedef` is an alias to `iterator`. | xref:bsl/unordered_multiset-06c/const_local_iterator.adoc[`const_local_iterator`] | This `typedef` is an alias to `local_iterator`. | xref:bsl/unordered_multiset-06c/const_pointer.adoc[`const_pointer`] | This `typedef` is an alias to the allocator const‐pointer type. | xref:bsl/unordered_multiset-06c/const_reference.adoc[`const_reference`] | This `typedef` is an alias for `const_reference`. | xref:bsl/unordered_multiset-06c/difference_type.adoc[`difference_type`] | This `typedef` is an alias to the allocator difference type. | xref:bsl/unordered_multiset-06c/hasher.adoc[`hasher`] | This `typedef` is an alias to the (template parameter) `HASH` type. | xref:bsl/unordered_multiset-06c/iterator.adoc[`iterator`] | This `typedef` is an alias to the hash‐table iterator type. | xref:bsl/unordered_multiset-06c/key_equal.adoc[`key_equal`] | This `typedef` is an alias to the (template parameter) `EQUAL` type. | xref:bsl/unordered_multiset-06c/key_type.adoc[`key_type`] | This `typedef` is an alias to the (template parameter) `KEY` type. | xref:bsl/unordered_multiset-06c/local_iterator.adoc[`local_iterator`] | This `typedef` is an alias to the hash‐table local iterator type. | xref:bsl/unordered_multiset-06c/pointer.adoc[`pointer`] | This `typedef` is an alias to the allocator pointer type. | xref:bsl/unordered_multiset-06c/reference.adoc[`reference`] | This `typedef` is an alias to `value_type&`. | xref:bsl/unordered_multiset-06c/size_type.adoc[`size_type`] | This `typedef` is an alias to the allocator size type. | xref:bsl/unordered_multiset-06c/value_type.adoc[`value_type`] | This `typedef` is an alias to `key_type`. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:bsl/unordered_multiset-06c/2constructor-0ab.adoc[`unordered_multiset`] [.small]#[constructor]# | Constructors | xref:bsl/unordered_multiset-06c/2destructor.adoc[`~unordered_multiset`] [.small]#[destructor]# | Destroy this object. | xref:bsl/unordered_multiset-06c/operator_assign-0c4.adoc[`operator=`] | Assignment operators | xref:bsl/unordered_multiset-06c/begin-0f2.adoc[`begin`] | `begin` overloads | xref:bsl/unordered_multiset-06c/bucket-0a.adoc[`bucket`] | Return the bucket index for the specified `key`. | xref:bsl/unordered_multiset-06c/bucket_count.adoc[`bucket_count`] | Return the number of buckets in the array of buckets maintained by this unordered multiset. | xref:bsl/unordered_multiset-06c/bucket_size.adoc[`bucket_size`] | Return the number of elements in the bucket at `index`. | xref:bsl/unordered_multiset-06c/cbegin-02.adoc[`cbegin`] | `cbegin` overloads | xref:bsl/unordered_multiset-06c/cend-0f.adoc[`cend`] | `cend` overloads | xref:bsl/unordered_multiset-06c/clear.adoc[`clear`] | Remove all entries from this unordered multiset. Note that the container is empty after this call, but allocated memory may be retained for future use. | xref:bsl/unordered_multiset-06c/contains-01.adoc[`contains`] | Return whether this unordered multiset contains `key`. | xref:bsl/unordered_multiset-06c/count-00d.adoc[`count`] | Return the number of elements equivalent to `key`. | xref:bsl/unordered_multiset-06c/emplace.adoc[`emplace`] | Emplace a newly constructed element into this unordered multiset. | xref:bsl/unordered_multiset-06c/emplace_hint.adoc[`emplace_hint`] | Emplace a newly constructed element near `hint`. | xref:bsl/unordered_multiset-06c/empty.adoc[`empty`] | Return `true` if this unordered multiset contains no elements, and `false` otherwise. | xref:bsl/unordered_multiset-06c/end-06.adoc[`end`] | `end` overloads | xref:bsl/unordered_multiset-06c/equal_range-00.adoc[`equal_range`] | `equal_range` overloads | xref:bsl/unordered_multiset-06c/erase-03.adoc[`erase`] | `erase` overloads | xref:bsl/unordered_multiset-06c/find-0c.adoc[`find`] | `find` overloads | xref:bsl/unordered_multiset-06c/get_allocator.adoc[`get_allocator`] | Return (a copy of) the allocator used for memory allocation by this unordered multiset. | xref:bsl/unordered_multiset-06c/hash_function.adoc[`hash_function`] | Return (a copy of) the hash unary functor used by this unordered multiset to generate a hash value (of type `size_t`) for a `key_type` object. | xref:bsl/unordered_multiset-06c/insert-09.adoc[`insert`] | `insert` overloads | xref:bsl/unordered_multiset-06c/insert_range.adoc[`insert_range`] | Insert each element from the specified `range`. | xref:bsl/unordered_multiset-06c/key_eq.adoc[`key_eq`] | Return (a copy of) the key‐equality binary functor that returns `true` if the value of two `key_type` objects are equivalent, and `false` otherwise. | xref:bsl/unordered_multiset-06c/load_factor.adoc[`load_factor`] | Return the current load factor of this container. | xref:bsl/unordered_multiset-06c/max_bucket_count.adoc[`max_bucket_count`] | Return a theoretical upper bound on the number of buckets. | xref:bsl/unordered_multiset-06c/max_load_factor-04.adoc[`max_load_factor`] | `max_load_factor` overloads | xref:bsl/unordered_multiset-06c/max_size.adoc[`max_size`] | Return a theoretical upper bound on the size of this container. | xref:bsl/unordered_multiset-06c/rehash.adoc[`rehash`] | Rehash this container to at least `numBuckets` buckets. | xref:bsl/unordered_multiset-06c/reserve.adoc[`reserve`] | Reserve capacity for at least `numElements` without rehashing. | xref:bsl/unordered_multiset-06c/size.adoc[`size`] | Return the number of elements in this unordered multiset. | xref:bsl/unordered_multiset-06c/swap.adoc[`swap`] | Exchange the contents of this object with those of `other`. | xref:bsl/unordered_multiset-06c/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration<unordered_multiset, IsBitwiseMoveable, ::BloombergLP::bslmf::IsBitwiseMoveable<HashTable>::value>`] | Nested trait declaration for `bslmf::IsBitwiseMoveable`. |=== == Deduction Guides [cols="1,4"] |=== | Name| Description | xref:bsl/unordered_multiset-05.adoc[`unordered_multiset<KEY>`] | CTAD guide: deduce `KEY` from initializer_list `value_type`. | xref:bsl/unordered_multiset-09e.adoc[`unordered_multiset<KEY>`] | CTAD guide: deduce `KEY` from initializer_list `value_type`. | xref:bsl/unordered_multiset-07f.adoc[`unordered_multiset<KEY>`] | CTAD guide: deduce `KEY` from iterator `value_type`. | xref:bsl/unordered_multiset-07a.adoc[`unordered_multiset<KEY>`] | CTAD guide: deduce `KEY` from iterator `value_type`. | xref:bsl/unordered_multiset-063.adoc[`unordered_multiset<KEY, HASH>`] | CTAD guide: deduce `KEY` from initializer_list `value_type`. | xref:bsl/unordered_multiset-0d3.adoc[`unordered_multiset<KEY, HASH>`] | CTAD guide: deduce `KEY` from iterator `value_type`. | xref:bsl/unordered_multiset-0a9.adoc[`unordered_multiset<KEY, HASH, EQUAL>`] | CTAD guide: deduce `KEY` from initializer_list `value_type`. | xref:bsl/unordered_multiset-091.adoc[`unordered_multiset<KEY, HASH, EQUAL>`] | CTAD guide: deduce `KEY` from iterator `value_type`. | xref:bsl/unordered_multiset-009.adoc[`unordered_multiset<KEY, HASH, EQUAL, ALLOCATOR>`] | CTAD guide: deduce `KEY` from initializer_list `value_type`. | xref:bsl/unordered_multiset-0ab.adoc[`unordered_multiset<KEY, HASH, EQUAL, ALLOCATOR>`] | CTAD guide: deduce `KEY` from iterator `value_type`. | xref:bsl/unordered_multiset-00df.adoc[`unordered_multiset<KEY, HASH, bsl::equal_to<KEY>, ALLOCATOR>`] | CTAD guide: deduce `KEY` from initializer_list `value_type`. | xref:bsl/unordered_multiset-0db.adoc[`unordered_multiset<KEY, HASH, bsl::equal_to<KEY>, ALLOCATOR>`] | CTAD guide: deduce `KEY` from iterator `value_type`. | xref:bsl/unordered_multiset-0d0.adoc[`unordered_multiset<KEY, bsl::hash<KEY>, bsl::equal_to<KEY>, ALLOCATOR>`] | CTAD guide: deduce `KEY` from initializer_list `value_type`. | xref:bsl/unordered_multiset-00d8.adoc[`unordered_multiset<KEY, bsl::hash<KEY>, bsl::equal_to<KEY>, ALLOCATOR>`] | CTAD guide: deduce `KEY` from initializer_list `value_type`. | xref:bsl/unordered_multiset-0e.adoc[`unordered_multiset<KEY, bsl::hash<KEY>, bsl::equal_to<KEY>, ALLOCATOR>`] | CTAD guide: deduce `KEY` from iterator `value_type`. | xref:bsl/unordered_multiset-02.adoc[`unordered_multiset<KEY, bsl::hash<KEY>, bsl::equal_to<KEY>, ALLOCATOR>`] | CTAD guide: deduce `KEY` from iterator `value_type`. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:bsl/operator_eq-0a2.adoc[bsl::operator==]` | Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:bsl/erase_if-074.adoc[`erase_if`] | Erase all elements in `ms` that satisfy `predicate`. | xref:bsl/operator_eq-094.adoc[`operator==`] | Return `true` if `lhs` and `rhs` have the same value. | xref:bsl/swap-03d7.adoc[`swap`] | Exchange the values of the specified `a` and `b` objects. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#