Namespaces
Variants

std::unordered_multiset<Key,Hash,KeyEqual,Allocator>:: insert

From cppreference.net
iterator insert ( const value_type & value ) ;
(1) (depuis C++11)
iterator insert ( value_type && value ) ;
(2) (depuis C++11)
iterator insert ( const_iterator hint, const value_type & value ) ;
(3) (depuis C++11)
iterator insert ( const_iterator hint, value_type && value ) ;
(4) (depuis C++11)
template < class InputIt >
void insert ( InputIt first, InputIt last ) ;
(5) (depuis C++11)
void insert ( std:: initializer_list < value_type > ilist ) ;
(6) (depuis C++11)
iterator insert ( node_type && nh ) ;
(7) (depuis C++17)
iterator insert ( const_iterator hint, node_type && nh ) ;
(8) (depuis C++17)

Insère un ou plusieurs éléments dans le conteneur.

1,2) Insère value .
3,4) Insère value , en utilisant hint comme suggestion non contraignante pour l'endroit où la recherche devrait commencer.
5) Insère les éléments de la plage [ first , last ) .
6) Insère des éléments depuis une liste d'initialisation ilist .
7) Si nh est un node handle vide, ne fait rien. Sinon, insère l'élément possédé par nh dans le conteneur et retourne un itérateur pointant vers l'élément inséré. Le comportement est indéfini si nh n'est pas vide et get_allocator ( ) ! = nh. get_allocator ( ) .
8) Si nh est un node handle vide, ne fait rien et retourne l'itérateur de fin. Sinon, insère l'élément possédé par nh dans le conteneur, et retourne l'itérateur pointant vers l'élément avec une clé équivalente à nh. key ( ) . hint est utilisé comme suggestion non contraignante pour indiquer où la recherche devrait commencer. Le comportement est indéfini si nh n'est pas vide et get_allocator ( ) ! = nh. get_allocator ( ) .

Si après l'opération le nouveau nombre d'éléments dépasse l'ancien max_load_factor() * bucket_count() un réagencement a lieu.
Si un réagencement se produit (en raison de l'insertion), tous les itérateurs sont invalidés. Sinon (aucun réagencement), 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

1-4) Un itérateur vers l'élément inséré.
5,6) (aucun)
7,8) Itérateur de fin si nh était vide, itérateur pointant vers l'élément inséré sinon.

Exceptions

1-4) Si une exception est levée par une opération quelconque, l'insertion n'a aucun effet.

Complexité

1-4) Cas moyen : O(1) , cas le pire O(size()) .
5,6) Cas moyen : O(N) , où N est le nombre d'éléments à insérer. Cas le pire : O(N * size() + N) .
7,8) Cas moyen : O(1) , cas le pire O(size()) .

Exemple

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)