std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>:: insert
|
Definiert im Header
<unordered_map>
|
||
|
iterator insert
(
const
value_type
&
value
)
;
|
(1) | (seit C++11) |
|
iterator insert
(
value_type
&&
value
)
;
|
(2) | (seit C++17) |
|
template
<
class
P
>
iterator insert ( P && value ) ; |
(3) | (seit C++11) |
|
iterator insert
(
const_iterator hint,
const
value_type
&
value
)
;
|
(4) | (seit C++11) |
|
iterator insert
(
const_iterator hint, value_type
&&
value
)
;
|
(5) | (seit C++17) |
|
template
<
class
P
>
iterator insert ( const_iterator hint, P && value ) ; |
(6) | (seit C++11) |
|
template
<
class
InputIt
>
void insert ( InputIt first, InputIt last ) ; |
(7) | (seit C++11) |
|
void
insert
(
std::
initializer_list
<
value_type
>
ilist
)
;
|
(8) | (seit C++11) |
|
iterator insert
(
node_type
&&
nh
)
;
|
(9) | (seit C++17) |
|
iterator insert
(
const_iterator hint, node_type
&&
nh
)
;
|
(10) | (seit C++17) |
Fügt Element(e) in den Container ein.
[
first
,
last
)
ein.
[
first
,
last
)
kein
gültiger Bereich
ist, oder
first
und/oder
last
Iteratoren in
*
this
sind, ist das Verhalten undefiniert.
Falls nach der Operation die neue Anzahl der Elemente größer ist als das alte
max_load_factor()
*
bucket_count()
findet eine Rehash-Operation statt.
Falls Rehashing auftritt (durch die Einfügung), werden alle Iteratoren ungültig. Andernfalls (kein Rehashing) werden Iteratoren nicht ungültig.
Wenn die Einfügung erfolgreich ist, werden Zeiger und Referenzen auf das Element, die während es im Node-Handle gehalten wurde, ungültig, und Zeiger und Referenzen, die vor dem Extrahieren auf dieses Element erhalten wurden, werden gültig.
(seit C++17)
Inhaltsverzeichnis |
Parameter
| hint | - | Iterator, der als Vorschlag dient, wo der Inhalt eingefügt werden soll |
| value | - | einzufügender Elementwert |
| first, last | - | das Iteratorpaar, das den Quell- Bereich der einzufügenden Elemente definiert |
| ilist | - | Initialisierungsliste, aus der die Werte eingefügt werden |
| nh | - | ein kompatibles Node Handle |
| Typanforderungen | ||
-
InputIt
muss die Anforderungen von
LegacyInputIterator
erfüllen.
|
||
Rückgabewert
Exceptions
Komplexität
O(1)
, schlechtester Fall
O(size())
.
O(N)
, wobei N die Anzahl der einzufügenden Elemente ist. Schlechtester Fall:
O(N * size() + N)
.
O(1)
, schlechtester Fall
O(size())
.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 2005 | C++11 |
Überladungen
(3,6)
würden nur an der Überladungsauflösung
teilnehmen, wenn
P
implizit in
value_type
konvertierbar ist
|
nimmt nur teil, wenn
value_type
konstruierbar ist aus
P&&
|
Siehe auch
|
Konstruiert Element direkt vor Ort
(öffentliche Elementfunktion) |
|
|
Konstruiert Elemente direkt vor Ort mit Hinweis
(öffentliche Elementfunktion) |
|
|
erstellt einen
std::insert_iterator
vom vom Argument abgeleiteten Typ
(Funktionstemplate) |