std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>::insert
Von cppreference.com
< cpp | container | flat multimap
| 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
[first, last) ein, als ob die folgenden Operationen sequenziell ausgeführt würden- Fügt Elemente zu
chinzu, 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));
} - Sortiert den Bereich der neu eingefügten Elemente in Bezug auf
value_comp. - 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
[first, last) ein, als ob die folgenden Operationen sequenziell ausgeführt würden- Fügt Elemente zu
chinzu, 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));
} - 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());.
| Informationen zur Iterator-Invalidierung sind von hier kopiert. |
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. (?)
| Dieser Abschnitt ist unvollständig Grund: Überprüfung der Fälle 7-10 |
[edit] Komplexität
1-6) Linear in
size().8) Linear in
size().[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Siehe auch
| konstruiert Elemente direkt (in-place) (public member function) | |
| konstruiert Elemente "in place" unter Verwendung eines Hinweises (public member function) | |
| erstellt einen std::insert_iterator vom Typ, der aus dem Argument abgeleitet wird (Funktionsvorlage) |