std::unordered_multimap<Key,T,Hash,KeyEqual,Allocator>:: insert
|
Défini dans l'en-tête
<unordered_map>
|
||
|
iterator insert
(
const
value_type
&
value
)
;
|
(1) | (depuis C++11) |
|
iterator insert
(
value_type
&&
value
)
;
|
(2) | (depuis C++17) |
|
template
<
class
P
>
iterator insert ( P && value ) ; |
(3) | (depuis C++11) |
|
iterator insert
(
const_iterator hint,
const
value_type
&
value
)
;
|
(4) | (depuis C++11) |
|
iterator insert
(
const_iterator hint, value_type
&&
value
)
;
|
(5) | (depuis C++17) |
|
template
<
class
P
>
iterator insert ( const_iterator hint, P && value ) ; |
(6) | (depuis C++11) |
|
template
<
class
InputIt
>
void insert ( InputIt first, InputIt last ) ; |
(7) | (depuis C++11) |
|
void
insert
(
std::
initializer_list
<
value_type
>
ilist
)
;
|
(8) | (depuis C++11) |
|
iterator insert
(
node_type
&&
nh
)
;
|
(9) | (depuis C++17) |
|
iterator insert
(
const_iterator hint, node_type
&&
nh
)
;
|
(10) | (depuis C++17) |
Insère un ou plusieurs éléments dans le conteneur.
[
first
,
last
)
.
[
first
,
last
)
n'est pas un
intervalle valide
, ou si
first
et/ou
last
sont des itérateurs dans
*
this
, le comportement est indéfini.
Si après l'opération le nouveau nombre d'éléments est supérieur à l'ancien
max_load_factor()
*
bucket_count()
un rehashing a lieu.
Si un rehashing se produit (en raison de l'insertion), tous les itérateurs sont invalidés. Sinon (aucun rehashing), les itérateurs ne sont pas invalidés.
Si l'insertion réussit, les pointeurs et références vers l'élément obtenus pendant qu'il est détenu dans le node handle sont invalidés, et les pointeurs et références obtenus vers cet élément avant son extraction redeviennent valides.
(depuis C++17)
Table des matières |
Paramètres
| hint | - | itérateur, utilisé comme suggestion pour l'emplacement d'insertion du contenu |
| value | - | valeur de l'élément à insérer |
| first, last | - | paire d'itérateurs définissant la plage source des éléments à insérer |
| ilist | - | liste d'initialisation depuis laquelle insérer les valeurs |
| nh | - | un gestionnaire de nœud compatible |
| Exigences de type | ||
-
InputIt
doit satisfaire aux exigences de
LegacyInputIterator
.
|
||
Valeur de retour
Exceptions
Complexité
O(1)
, cas le pire
O(size())
.
O(N)
, où N est le nombre d'éléments à insérer. Cas le plus défavorable :
O(N * size() + N)
.
O(1)
, cas le plus défavorable
O(size())
.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | S'applique à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 2005 | C++11 |
les surcharges
(3,6)
ne participaient à la résolution de surcharge
que si
P
est implicitement convertible en
value_type
|
ne participe que si
value_type
est constructible à partir de
P&&
|
Voir aussi
|
construit un élément en place
(fonction membre publique) |
|
|
construit des éléments en place en utilisant un indice
(fonction membre publique) |
|
|
crée un
std::insert_iterator
dont le type est déduit de l'argument
(fonction template) |