Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
iterator einfügen( const value_type& value );
(1) (seit C++23)
iterator einfügen( 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 einfügen( 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. Äquivalent zu return emplace(value);.
2) Fügt value ein. Äquivalent zu 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. Äquivalent zu return emplace_hint(pos, value);.
4) Fügt value an einer Position ein, die so nah wie möglich an der Position direkt vor pos liegt. Äquivalent zu return emplace_hint(pos, std::move(value));.
5) Fügt x in *this ein, als ob durch emplace(std::forward<P>(x));. Dieser Überladungsaufruf 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 der Position ein, die der Position unmittelbar vor pos am nächsten liegt. Entspricht return emplace_hint(position, std::forward<P>(x));. Dieser Überladungsaufruf nimmt nur 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 [firstlast) 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 in Bezug auf value_comp.
  3. Führt den resultierenden sortierten Bereich und den sortierten Bereich der bereits vorhandenen Elemente zu einem einzigen sortierten Bereich zusammen.
Kann während der In-Place-Merge-Operation Speicher zuweisen.
8) Fügt Elemente aus dem Bereich [firstlast) 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 der In-Place-Merge-Operation Speicher zuweisen.
9) Fügt Elemente aus der Initialisierungsliste ilist ein. Äquivalent zu insert(ilist.begin(), ilist.end());.
10) Fügt Elemente aus der Initialisierungsliste ilist ein. Äquivalent zu insert(s, ilist.begin(), ilist.end());.

Inhalt

[edit] Parameter

pos - Ein Iterator, vor dem das neue Element eingefügt wird
value - Ein Elementwert zum Einfügen
first, last - das Iteratorenpaar, das den Quell- Bereich der einzufügenden Elemente definiert
ilist - Eine Initialisierungsliste, aus der die Werte eingefügt werden sollen
x - ein Wert eines beliebigen Typs, der transparent mit einem Schlüssel verglichen werden kann
s - Ein Disambiguierungs-Tag, das angibt, dass die Eingabesequenz sortiert ist (in Bezug auf value_comp())
Typanforderungen
-
InputIt muss die Anforderungen von LegacyInputIterator erfüllen.

[edit] Rückgabewert

1-6) Ein Iterator zum eingefügten Element.
7-10) (keiner)

[edit] Ausnahmen

1-6) Wenn eine Ausnahme bei einer Operation ausgelöst wird, hat die Einfügung keine Auswirkung.
7-10) Keine Garantie für Ausnahmensicherheit. (?)

[edit] Komplexität

1-6) Linear in size().
7) N + M·log(M), wobei N die size() vor der Operation und M die std::distance(first, last) ist.
8) Linear in size().
9) N + M·log(M), wobei N die size() vor der Operation und M die ilist.size() ist.
10) Linear in N, wobei N die size() nach der Operation ist.

[edit] Beispiel

[edit] Siehe auch

konstruiert Elemente direkt (in-place)
(public member function) [edit]
konstruiert Elemente "in place" unter Verwendung eines Hinweises
(public member function) [edit]
erstellt einen std::insert_iterator vom Typ, der aus dem Argument abgeleitet wird
(Funktionsvorlage) [bearbeiten]