[#bsl-hash_multiset]
= xref:bsl.adoc[bsl]::hash&lowbar;multiset
:relfileprefix: ../
:mrdocs:

Legacy STLPort hash container storing possibly duplicate values&period;

== Synopsis

Declared in `&lt;bslstp&lowbar;hashset&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class &lowbar;Value,
    class &lowbar;HashFcn = BloombergLP::bslstp::HashSelector&lt;&lowbar;Value&gt;::Type,
    class &lowbar;EqualKey = bsl::ComparatorSelector&lt;&lowbar;Value&gt;::Type,
    class &lowbar;Alloc = xref:bsl/allocator-0df.adoc[bsl::allocator&lt;&lowbar;Value&gt;]&gt;
class hash&lowbar;multiset;
----

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/hash_multiset/allocator_type.adoc[`allocator&lowbar;type`] 
| Allocator type used by this multiset&period;
| xref:bsl/hash_multiset/const_iterator.adoc[`const&lowbar;iterator`] 
| Iterator providing non&hyphen;modifiable access to elements&period;
| xref:bsl/hash_multiset/const_pointer.adoc[`const&lowbar;pointer`] 
| Pointer to a non&hyphen;modifiable element&period;
| xref:bsl/hash_multiset/const_reference.adoc[`const&lowbar;reference`] 
| Reference to a non&hyphen;modifiable element&period;
| xref:bsl/hash_multiset/difference_type.adoc[`difference&lowbar;type`] 
| Signed integral type used for iterator distances&period;
| xref:bsl/hash_multiset/hasher.adoc[`hasher`] 
| Hash functor type&period;
| xref:bsl/hash_multiset/iterator.adoc[`iterator`] 
| Iterator type&semi; identical to `const&lowbar;iterator`&period;
| xref:bsl/hash_multiset/key_equal.adoc[`key&lowbar;equal`] 
| Key&hyphen;equality functor type&period;
| xref:bsl/hash_multiset/key_type.adoc[`key&lowbar;type`] 
| Key type used by this container&period;
| xref:bsl/hash_multiset/pointer.adoc[`pointer`] 
| Pointer to a modifiable element&period;
| xref:bsl/hash_multiset/reference.adoc[`reference`] 
| Reference to a modifiable element&period;
| xref:bsl/hash_multiset/size_type.adoc[`size&lowbar;type`] 
| Unsigned integral type used for sizes&period;
| xref:bsl/hash_multiset/value_type.adoc[`value&lowbar;type`] 
| Element type stored in the multiset&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/hash_multiset/2constructor-07b.adoc[`hash&lowbar;multiset`]         [.small]#[constructor]#
| Constructors
| xref:bsl/hash_multiset/begin.adoc[`begin`] 
| Return an iterator to the first element&period;
| xref:bsl/hash_multiset/bucket_count.adoc[`bucket&lowbar;count`] 
| Return the number of buckets in this multiset&period;
| xref:bsl/hash_multiset/clear.adoc[`clear`] 
| Remove all elements from this multiset&period;
| xref:bsl/hash_multiset/count.adoc[`count`] 
| Return the number of elements equal to the specified `&lowbar;&lowbar;key`&period; Return the number of elements matching the specified key&period;
| xref:bsl/hash_multiset/elems_in_bucket.adoc[`elems&lowbar;in&lowbar;bucket`] 
| Return the number of elements in the specified bucket&period;
| xref:bsl/hash_multiset/empty.adoc[`empty`] 
| Return `true` if this multiset contains no elements&period;
| xref:bsl/hash_multiset/end.adoc[`end`] 
| Return the past&hyphen;the&hyphen;end iterator for this multiset&period;
| xref:bsl/hash_multiset/equal_range.adoc[`equal&lowbar;range`] 
| Return iterators delimiting all elements equal to the specified `&lowbar;&lowbar;key`&period;
| xref:bsl/hash_multiset/erase-07fb.adoc[`erase`] 
| `erase` overloads
| xref:bsl/hash_multiset/find.adoc[`find`] 
| Return an iterator to an element with the specified `&lowbar;&lowbar;key`, or `end`&period;
| xref:bsl/hash_multiset/get_allocator.adoc[`get&lowbar;allocator`] 
| Return the allocator used by this multiset&period;
| xref:bsl/hash_multiset/hash_funct.adoc[`hash&lowbar;funct`] 
| Return the hash functor used by this multiset&period;
| xref:bsl/hash_multiset/insert-0e.adoc[`insert`] 
| `insert` overloads
| xref:bsl/hash_multiset/insert_noresize.adoc[`insert&lowbar;noresize`] 
| Insert the specified `&lowbar;&lowbar;obj` without resizing the bucket vector&period;
| xref:bsl/hash_multiset/key_eq.adoc[`key&lowbar;eq`] 
| Return the key&hyphen;equality functor used by this multiset&period;
| xref:bsl/hash_multiset/max_bucket_count.adoc[`max&lowbar;bucket&lowbar;count`] 
| Return the maximum number of buckets this multiset can use&period;
| xref:bsl/hash_multiset/max_size.adoc[`max&lowbar;size`] 
| Return an upper bound on the number of elements this multiset can hold&period;
| xref:bsl/hash_multiset/resize.adoc[`resize`] 
| Rebuild the bucket vector using a size suggested by the specified hint&period;
| xref:bsl/hash_multiset/size.adoc[`size`] 
| Return the number of elements in this multiset&period;
| xref:bsl/hash_multiset/swap.adoc[`swap`] 
| Exchange the contents of this multiset with those of the specified set&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/hash_multiset/_M_equal.adoc[`&lowbar;M&lowbar;equal`] 
| Return `true` if the specified multisets contain the same elements&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/operator_not_eq-001.adoc[`operator!&equals;`]
| Return `true` if the specified hash multisets do not contain the same elements&period;
| xref:bsl/operator_eq-098.adoc[`operator&equals;&equals;`]
| Return `true` if the specified hash multisets contain the same elements&period;
| xref:bsl/swap-079.adoc[`swap`]
| Exchange the contents of the specified hash multisets&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
