[#bsl-multiset-03-2constructor-05]
= xref:bsl.adoc[bsl]::xref:bsl/multiset-03.adoc[multiset]::multiset
:relfileprefix: ../../
:mrdocs:

Constructors

== Synopses

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

Create an empty multiset&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/multiset-03/2constructor-07.adoc[multiset]();
----

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

Create a multiset having the same value as `original`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/multiset-03/2constructor-03.adoc[multiset](xref:bsl/multiset-03.adoc[multiset] const& original);
----

[.small]#xref:bsl/multiset-03/2constructor-03.adoc[_» more&period;&period;&period;_]#

Create a multiset by moving from `original`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/multiset-03/2constructor-041.adoc[multiset](xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef&lt;multiset&gt;] original);
----

[.small]#xref:bsl/multiset-03/2constructor-041.adoc[_» more&period;&period;&period;_]#

Create an empty multiset that uses the specified `basicAllocator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:bsl/multiset-03/2constructor-0b5.adoc[multiset](ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/multiset-03/2constructor-0b5.adoc[_» more&period;&period;&period;_]#

Create a multiset by moving from `original` with `basicAllocator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/multiset-03/2constructor-0e.adoc[multiset](
    xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef&lt;multiset&gt;] original,
    ALLOCATOR const& basicAllocator);
----

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

Same as the preceding overload, using the specified `basicAllocator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/multiset-03/2constructor-043.adoc[multiset](
    std::initializer&lowbar;list&lt;KEY&gt; values,
    ALLOCATOR const& basicAllocator);
----

[.small]#xref:bsl/multiset-03/2constructor-043.adoc[_» more&period;&period;&period;_]#

Create an empty multiset having the specified `comparator`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:bsl/multiset-03/2constructor-098.adoc[multiset](
    COMPARATOR const& comparator,
    ALLOCATOR const& basicAllocator = ALLOCATOR());
----

[.small]#xref:bsl/multiset-03/2constructor-098.adoc[_» more&period;&period;&period;_]#

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


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/multiset-03/2constructor-0d.adoc[multiset](
    xref:bsl/multiset-03.adoc[multiset] const& original,
    ALLOCATOR const& basicAllocator);
----

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

Create a multiset from the specified `values` initializer list&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/multiset-03/2constructor-0f.adoc[multiset](
    std::initializer&lowbar;list&lt;KEY&gt; values,
    COMPARATOR const& comparator = COMPARATOR(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
----

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

Same as the preceding overload, using the specified `basicAllocator`&period;


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

[.small]#xref:bsl/multiset-03/2constructor-0a.adoc[_» more&period;&period;&period;_]#

Create a multiset from the specified `range`, using the specified `basicAllocator`&period;


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

[.small]#xref:bsl/multiset-03/2constructor-06.adoc[_» more&period;&period;&period;_]#

Create a multiset from the range `&lsqb;first, last)&rsqb;`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class INPUT&lowbar;ITERATOR&gt;
xref:bsl/multiset-03/2constructor-0ba.adoc[multiset](
    INPUT&lowbar;ITERATOR first,
    INPUT&lowbar;ITERATOR last,
    COMPARATOR const& comparator = COMPARATOR(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
----

[.small]#xref:bsl/multiset-03/2constructor-0ba.adoc[_» more&period;&period;&period;_]#

Create a multiset from the specified `range`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class RANGE&gt;
xref:bsl/multiset-03/2constructor-09a.adoc[multiset](
    std::from&lowbar;range&lowbar;t tag,
    RANGE&& range,
    COMPARATOR const& comparator = COMPARATOR(),
    ALLOCATOR const& basicAllocator = ALLOCATOR());
----

[.small]#xref:bsl/multiset-03/2constructor-09a.adoc[_» more&period;&period;&period;_]#

== Parameters

[cols="1,4"]
|===
| Name| Description
| *original*
| multiset to copy
| *basicAllocator*
| allocator used to supply memory
| *values*
| initializer list of elements to insert
| *comparator*
| key&hyphen;ordering comparator for this multiset
| *first*
| beginning of the input range
| *last*
| end of the input range
| *tag*
| disambiguation tag selecting the range constructor
| *range*
| input range of elements to insert
|===


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