Namespaces
Variants

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

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

Fügt Element(e) in den Container ein.

1) Fügt value ein. Entspricht return emplace ( value ) ; .
2) Fügt value ein. Entspricht return emplace ( std :: move ( value ) ) ; .
3) Fügt value an einer Position ein, die so nah wie möglich an der Position direkt vor pos liegt. Entspricht return emplace_hint ( pos, value ) ; .
4) Fügt value an einer Position ein, die möglichst nah an der Position direkt vor pos liegt. Entspricht return emplace_hint ( pos, std :: move ( value ) ) ; .
5) Fügt x in * this ein, als ob durch emplace ( std:: forward < P > ( x ) ) ; . Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn std:: is_constructible_v < pair < key_type, mapped_type > , P > true ist.
6) Fügt x in * this an einer Position ein, die möglichst nah an der Position direkt vor pos liegt. Entspricht return emplace_hint ( position, std:: forward < P > ( x ) ) ; . Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn std:: is_constructible_v < pair < key_type, mapped_type > , P > true ist.
7) Fügt Elemente aus dem Bereich [ first , last ) ein, als ob die folgenden Operationen sequenziell ausgeführt würden:
  1. Fügt Elemente zu c hinzu, als ob durch
    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. Sortiert den Bereich der neu eingefügten Elemente bezüglich value_comp .
  3. Führt den resultierenden sortierten Bereich und den sortierten Bereich der vorhandenen Elemente zu einem einzigen sortierten Bereich zusammen.
Kann während des In-Place-Merge-Vorgangs Speicher allozieren.
8) Fügt Elemente aus dem Bereich [ first , last ) ein, als ob die folgenden Operationen sequenziell ausgeführt würden:
  1. Fügt Elemente zu c hinzu, als ob durch
    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. Führt den sortierten Bereich der neu hinzugefügten Elemente und den sortierten Bereich der bereits vorhandenen Elemente zu einem einzigen sortierten Bereich zusammen.
Kann während des In-Place-Merge-Vorgangs Speicher allozieren.
9) Fügt Elemente aus der Initialisierungsliste ilist ein. Entspricht insert ( ilist. begin ( ) , ilist. end ( ) ) ; .
10) Fügt Elemente aus der Initialisierungsliste ilist ein. Entspricht insert ( s, ilist. begin ( ) , ilist. end ( ) ) ; .

Inhaltsverzeichnis

Parameter

pos - ein Iterator auf die Position, vor der das neue Element eingefügt wird
value - ein einzufügender Elementwert
first, last - das Iteratorpaar, das den Quell- Bereich der einzufügenden Elemente definiert
ilist - eine Initialisierungsliste, aus der die Werte eingefügt werden
x - ein Wert beliebigen Typs, der transparent mit einem Schlüssel verglichen werden kann
s - ein Disambiguierungs-Tag, das anzeigt, dass die Eingabesequenz sortiert ist (bezüglich value_comp() )
Typanforderungen
-
InputIt muss die Anforderungen von LegacyInputIterator erfüllen.

Rückgabewert

1-6) Ein Iterator auf das eingefügte Element.
7-10) (keine)

Exceptions

1-6) Wenn eine Ausnahme durch einen beliebigen Vorgang ausgelöst wird, hat das Einfügen keine Auswirkung.
7-10) Keine Ausnahmesicherheitsgarantie. (?)

Komplexität

1-6) Linear in size() .
7) N + M·log ( M ) , wobei N die size() vor dem Vorgang ist und M std:: distance ( first, last ) ist.
8) Linear in size() .
9) N + M·log ( M ) , wobei N die size() vor dem Vorgang ist und M ilist. size ( ) ist.
10) Linear in N , where N is size() after the operation.

Beispiel

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)