[#bsl-unordered_multimap-0b0-2constructor-06]
= xref:bsl.adoc[bsl]::xref:bsl/unordered_multimap-0b0.adoc[unordered&lowbar;multimap]::unordered&lowbar;multimap
:relfileprefix: ../../
:mrdocs:

Constructors

== Synopses

Declared in `&lt;bslstl&lowbar;unorderedmultimap&period;h&gt;`

Create an empty unordered multimap&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/unordered_multimap-0b0/2constructor-0f.adoc[unordered&lowbar;multimap]();
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-0f.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap as a copy of `original`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/unordered_multimap-0b0/2constructor-02b.adoc[unordered&lowbar;multimap](xref:bsl/unordered_multimap-0b0.adoc[unordered&lowbar;multimap] const& original);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-02b.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap by moving from `original`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/unordered_multimap-0b0/2constructor-01.adoc[unordered&lowbar;multimap](xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef&lt;unordered&lowbar;multimap&gt;] original);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-01.adoc[_» more&period;&period;&period;_]#

Create an empty unordered multimap using `basicAllocator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:bsl/unordered_multimap-0b0/2constructor-0ab6.adoc[unordered&lowbar;multimap](ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-0ab6.adoc[_» more&period;&period;&period;_]#

Create an empty unordered multimap with buckets and allocator&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/unordered_multimap-0b0/2constructor-022.adoc[unordered&lowbar;multimap](
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-022.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap by moving from `original` using `basicAllocator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/unordered_multimap-0b0/2constructor-030.adoc[unordered&lowbar;multimap](
    xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef&lt;unordered&lowbar;multimap&gt;] original,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-030.adoc[_» more&period;&period;&period;_]#

Create a copy of `original` using `basicAllocator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/unordered_multimap-0b0/2constructor-0c.adoc[unordered&lowbar;multimap](
    xref:bsl/unordered_multimap-0b0.adoc[unordered&lowbar;multimap] const& original,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-0c.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from `values` using `basicAllocator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class = void&gt;
requires bsl&colon;&colon;IsStdAllocator&lowbar;v&lt;ALLOCATOR&gt;
xref:bsl/unordered_multimap-0b0/2constructor-0ab9.adoc[unordered&lowbar;multimap](
    std::initializer&lowbar;list&lt;value&lowbar;type&gt; values,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-0ab9.adoc[_» more&period;&period;&period;_]#

Create an empty unordered multimap with hash and allocator&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/unordered_multimap-0b0/2constructor-0b4.adoc[unordered&lowbar;multimap](
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets,
    HASH const& hashFunction,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-0b4.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from `&lsqb;first, last)&rsqb;` using `basicAllocator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class INPUT&lowbar;ITERATOR&gt;
xref:bsl/unordered_multimap-0b0/2constructor-04.adoc[unordered&lowbar;multimap](
    INPUT&lowbar;ITERATOR first,
    INPUT&lowbar;ITERATOR last,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-04.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from `range` using `basicAllocator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class RANGE&gt;
xref:bsl/unordered_multimap-0b0/2constructor-037.adoc[unordered&lowbar;multimap](
    std::from&lowbar;range&lowbar;t tag,
    RANGE&& range,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-037.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from `values` with bucket count and allocator&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class = void&gt;
requires bsl&colon;&colon;IsStdAllocator&lowbar;v&lt;ALLOCATOR&gt;
xref:bsl/unordered_multimap-0b0/2constructor-07.adoc[unordered&lowbar;multimap](
    std::initializer&lowbar;list&lt;value&lowbar;type&gt; values,
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-07.adoc[_» more&period;&period;&period;_]#

Create an empty unordered multimap with the specified options&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:bsl/unordered_multimap-0b0/2constructor-09d.adoc[unordered&lowbar;multimap](
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets,
    HASH const& hashFunction = HASH(),
    EQUAL const& keyEqual = EQUAL(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-09d.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from `&lsqb;first, last)&rsqb;` with buckets and allocator&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class INPUT&lowbar;ITERATOR&gt;
xref:bsl/unordered_multimap-0b0/2constructor-05.adoc[unordered&lowbar;multimap](
    INPUT&lowbar;ITERATOR first,
    INPUT&lowbar;ITERATOR last,
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-05.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from `range` with bucket count and allocator&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class RANGE&gt;
xref:bsl/unordered_multimap-0b0/2constructor-002.adoc[unordered&lowbar;multimap](
    std::from&lowbar;range&lowbar;t tag,
    RANGE&& range,
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-002.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from `values` with hash and allocator&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class = void,
    class = void&gt;
requires std&colon;&colon;is&lowbar;invocable&lowbar;v&lt;HASH, const KEY &amp;&gt; &amp;&amp; bsl&colon;&colon;IsStdAllocator&lowbar;v&lt;ALLOCATOR&gt;
xref:bsl/unordered_multimap-0b0/2constructor-090.adoc[unordered&lowbar;multimap](
    std::initializer&lowbar;list&lt;value&lowbar;type&gt; values,
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets,
    HASH const& hashFunction,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-090.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from `&lsqb;first, last)&rsqb;` with hash and allocator&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class INPUT&lowbar;ITERATOR&gt;
xref:bsl/unordered_multimap-0b0/2constructor-0e.adoc[unordered&lowbar;multimap](
    INPUT&lowbar;ITERATOR first,
    INPUT&lowbar;ITERATOR last,
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets,
    HASH const& hashFunction,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-0e.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from `range` with hash and allocator&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class RANGE&gt;
xref:bsl/unordered_multimap-0b0/2constructor-08.adoc[unordered&lowbar;multimap](
    std::from&lowbar;range&lowbar;t tag,
    RANGE&& range,
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets,
    HASH const& hashFunction,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-08.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from the `values` initializer list&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class = void,
    class = void,
    class = void&gt;
requires std&colon;&colon;is&lowbar;invocable&lowbar;v&lt;HASH, const KEY &amp;&gt; &amp;&amp; std&colon;&colon;is&lowbar;invocable&lowbar;v&lt;EQUAL, const KEY &amp;, const KEY &amp;&gt; &amp;&amp; bsl&colon;&colon;IsStdAllocator&lowbar;v&lt;ALLOCATOR&gt;
xref:bsl/unordered_multimap-0b0/2constructor-021.adoc[unordered&lowbar;multimap](
    std::initializer&lowbar;list&lt;value&lowbar;type&gt; values,
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets = 0,
    HASH const& hashFunction = HASH(),
    EQUAL const& keyEqual = EQUAL(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-021.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from the range `&lsqb;first, last)&rsqb;`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class INPUT&lowbar;ITERATOR&gt;
xref:bsl/unordered_multimap-0b0/2constructor-00c.adoc[unordered&lowbar;multimap](
    INPUT&lowbar;ITERATOR first,
    INPUT&lowbar;ITERATOR last,
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets = 0,
    HASH const& hashFunction = HASH(),
    EQUAL const& keyEqual = EQUAL(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-00c.adoc[_» more&period;&period;&period;_]#

Create an unordered multimap from the elements of `range`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class RANGE&gt;
xref:bsl/unordered_multimap-0b0/2constructor-0b3.adoc[unordered&lowbar;multimap](
    std::from&lowbar;range&lowbar;t tag,
    RANGE&& range,
    xref:bsl/unordered_multimap-0b0/size_type.adoc[size&lowbar;type] initialNumBuckets = 0,
    HASH const& hashFunction = HASH(),
    EQUAL const& keyEqual = EQUAL(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
----

[.small]#xref:bsl/unordered_multimap-0b0/2constructor-0b3.adoc[_» more&period;&period;&period;_]#

== Parameters

[cols="1,4"]
|===
| Name| Description
| *original*
| unordered multimap to copy
| *basicAllocator*
| allocator used to supply memory
| *initialNumBuckets*
| minimum initial number of buckets
| *values*
| initializer list of elements to insert
| *hashFunction*
| hash function for keys
| *first*
| beginning of the range to copy
| *last*
| end of the range to copy
| *tag*
| disambiguation tag for range construction
| *range*
| input range of key&sol;value pairs to insert
| *keyEqual*
| key&hyphen;equality functor
|===


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