[#bsl-unordered_multiset-06c-insert-0b]
= xref:bsl.adoc[bsl]::xref:bsl/unordered_multiset-06c.adoc[unordered&lowbar;multiset]::insert
:relfileprefix: ../../
:mrdocs:

Insert a copy of `value` near `hint`&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:bsl/unordered_multiset-06c/iterator.adoc[unordered&lowbar;multiset&lt;KEY, HASH, EQUAL, ALLOCATOR&gt;::iterator]
insert(
    xref:bsl/unordered_multiset-06c/const_iterator.adoc[const&lowbar;iterator] hint,
    xref:bsl/unordered_multiset-06c/value_type.adoc[value&lowbar;type] const& value);
----

== Description

Insert the specified `value` into this unordered multiset (in constant time if the specified `hint` refers to an element in this container equivalent to `value`)&period; If one or more keys equivalent to `value` already exist in this unordered multiset, this method is guaranteed to insert `value` in a position contiguous to one of those equivalent keys&period; Return an iterator referring to the newly inserted `value&lowbar;type` object that is equivalent to `value`&period; If `hint` does not refer to an element in this container equivalent to `value`, this operation has worst case `O&lsqb;N&rsqb;` and average case constant&hyphen;time complexity, where `N` is the size of this unordered multiset&period; This method requires that the (template parameter) type `KEY` be `copy&hyphen;insertable` into this unordered multiset (see &lcub;Requirements on `KEY`&rcub;)&period; The behavior is undefined unless `hint` is an iterator in the range `&lsqb;begin() &period;&period; end()&rsqb;` (both endpoints included)&period;

== Return Value

iterator to the newly inserted element

== Parameters

[cols="1,4"]
|===
| Name| Description
| *hint*
| iterator hint for the insertion position
| *value*
| element to insert
|===


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