Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/container/unordered multimap/emplace hint"

From cppreference.com
m (fmt, {{c}})
m (templatized.)
 
Line 1: Line 1:
{{cpp/container/unordered_multimap/title|emplace_hint}}
+
{{include page|cpp/container/emplace_hint|unordered_multimap}}
{{cpp/container/unordered_multimap/navbar}}
+
{{dcl begin}}
+
{{dcl|since=c++11|
+
template< class... Args >
+
iterator emplace_hint( const_iterator hint, Args&&... args );
+
}}
+
{{dcl end}}
+
 
+
Inserts a new element to the container, using {{c|hint}} as a suggestion where the element should go. The element is constructed in-place, i.e. no copy or move operations are performed.
+
 
+
The constructor of the element type ({{tt|value_type}}, that is, {{c|std::pair<const Key, T>}}) is called with exactly the same arguments as supplied to the function, forwarded with {{c|std::forward<Args>(args)...}}.
+
 
+
{{cpp/container/note_iterator_invalidation|unordered_multimap|emplace_hint}}
+
 
+
===Parameters===
+
{{par begin}}
+
{{par|hint|iterator, used as a suggestion as to where to insert the new element}}
+
{{par|args|arguments to forward to the constructor of the element}}
+
{{par end}}
+
 
+
===Return value===
+
Returns an iterator to the newly inserted element.
+
 
+
===Exceptions===
+
If an exception is thrown by any operation, this function has no effect (strong exception guarantee).
+
 
+
===Complexity===
+
Amortized constant on average, worst case linear in the size of the container.
+
 
+
===See also===
+
{{dsc begin}}
+
{{dsc inc|cpp/container/dsc emplace|unordered_multimap}}
+
{{dsc inc|cpp/container/dsc insert|unordered_multimap}}
+
{{dsc end}}
+
  
 
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
 
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}

Latest revision as of 08:04, 30 January 2024

 
 
 
 
template< class... Args >
iterator emplace_hint( const_iterator hint, Args&&... args );
(since C++11)

Inserts a new element into the container, using hint as a suggestion where the element should go.

The constructor of the element type (value_type, that is, std::pair<const Key, T>) is called with exactly the same arguments as supplied to the function, forwarded with std::forward<Args>(args)....

If after the operation the new number of elements is greater than old max_load_factor() * bucket_count() a rehashing takes place.
If rehashing occurs (due to the insertion), all iterators are invalidated. Otherwise (no rehashing), iterators are not invalidated.

Contents

[edit] Parameters

hint - iterator, used as a suggestion as to where to insert the new element
args - arguments to forward to the constructor of the element

[edit] Return value

An iterator to the inserted element.

[edit] Exceptions

If an exception is thrown for any reason, this function has no effect (strong exception safety guarantee).

[edit] Complexity

Amortized constant on average, worst case linear in the size of the container.

[edit] Example

[edit] See also

constructs element in-place
(public member function) [edit]
inserts elements or nodes(since C++17)
(public member function) [edit]