Namespaces
Variants

std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>:: insert

From cppreference.net
iterator insert ( const value_type & value ) ;
(1) (depuis C++23)
iterator insert ( value_type && value ) ;
(2) (depuis C++23)
iterator insert ( const_iterator pos, const value_type & value ) ;
(3) (depuis C++23)
iterator insert ( const_iterator pos, value_type && value ) ;
(4) (depuis C++23)
template < class P >
iterator insert ( P && x ) ;
(5) (depuis C++23)
template < class P >
iterator insert ( const_iterator pos, P && x ) ;
(6) (depuis C++23)
template < class InputIt >
void insert ( InputIt first, InputIt last ) ;
(7) (depuis C++23)
template < class InputIt >
void insert ( std:: sorted_equivalent_t , InputIt first, InputIt last ) ;
(8) (depuis C++23)
void insert ( std:: initializer_list < key_type > ilist ) ;
(9) (depuis C++23)
void insert ( std:: sorted_equivalent_t s, std:: initializer_list < key_type > ilist ) ;
(10) (depuis C++23)

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

1) Insère value . Équivalent à return emplace ( value ) ; .
2) Insère value . Équivalent à return emplace ( std :: move ( value ) ) ; .
3) Insère value à la position la plus proche possible de celle située juste avant pos . Équivalent à return emplace_hint ( pos, value ) ; .
4) Insère value à la position aussi proche que possible de la position juste avant pos . Équivalent à return emplace_hint ( pos, std :: move ( value ) ) ; .
5) Insère x dans * this comme par emplace ( std:: forward < P > ( x ) ) ; . Cette surcharge participe à la résolution de surcharge seulement si std:: is_constructible_v < pair < key_type, mapped_type > , P > est true .
6) Insère x dans * this à la position la plus proche possible de celle située juste avant pos . Équivalent à return emplace_hint ( position, std:: forward < P > ( x ) ) ; . Cette surcharge participe à la résolution de surcharge uniquement si std:: is_constructible_v < pair < key_type, mapped_type > , P > est true .
7) Insère les éléments de l'intervalle [ first , last ) comme si les opérations suivantes étaient effectuées séquentiellement :
  1. Ajoute les éléments à c comme par
    for ( ; first ! = last ; ++ first )
    {
    value_type value = * first ;
    c. keys . insert ( c. keys . end ( ) , std :: move ( value. first ) ) ;
    c. values . insert ( c. values . end ( ) , std :: move ( value. second ) ) ;
    }
  2. Trie l'intervalle des éléments nouvellement insérés par rapport à value_comp .
  3. Fusionne l'intervalle trié résultant et l'intervalle trié des éléments préexistants en un seul intervalle trié.
Peut allouer de la mémoire pendant l'opération de fusion en place.
8) Insère les éléments de l'intervalle [ first , last ) comme si les opérations suivantes étaient effectuées séquentiellement :
  1. Ajoute les éléments à c comme suit :
    for ( ; first ! = last ; ++ first )
    {
    value_type value = * first ;
    c. keys . insert ( c. keys . end ( ) , std :: move ( value. first ) ) ;
    c. values . insert ( c. values . end ( ) , std :: move ( value. second ) ) ;
    }
  2. Fusionne la plage triée des éléments nouvellement ajoutés et la plage triée des éléments préexistants en une seule plage triée.
Peut allouer de la mémoire pendant l'opération de fusion en place.
9) Insère les éléments de la liste d'initialisation ilist . Équivalent à insert ( ilist. begin ( ) , ilist. end ( ) ) ; .
10) Insère les éléments de la liste d'initialisation ilist . Équivalent à insert ( s, ilist. begin ( ) , ilist. end ( ) ) ; .

Table des matières

Paramètres

pos - un itérateur vers la position avant laquelle le nouvel élément sera inséré
value - une valeur d'élément à insérer
first, last - la paire d'itérateurs définissant la plage source des éléments à insérer
ilist - une liste d'initialisation depuis laquelle insérer les valeurs
x - une valeur de tout type pouvant être comparée de manière transparente avec une clé
s - une balise de désambiguïsation indiquant que la séquence d'entrée est triée (par rapport à value_comp() )
Exigences de type
-
InputIt doit satisfaire aux exigences de LegacyInputIterator .

Valeur de retour

1-6) Un itérateur vers l'élément inséré.
7-10) (aucun)

Exceptions

1-6) Si une exception est levée par une opération quelconque, l'insertion n'a aucun effet.
7-10) Aucune garantie de sûreté face aux exceptions. (?)

Complexité

1-6) Linéaire en size() .
7) N + M·log ( M ) , où N est la size() avant l'opération et M est std:: distance ( first, last ) .
8) Linéaire en size() .
9) N + M·log ( M ) , où N est la size() avant l'opération et M est ilist. size ( ) .
10) Linéaire en N , où N est size() après l'opération.

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 du type déduit de l'argument
(fonction template)