std::forward_list<T,Allocator>::insert_after
Von cppreference.com
< cpp | container | forward list
| iterator insert_after( const_iterator pos, const T& value ); |
(1) | (seit C++11) |
| iterator insert_after( const_iterator pos, T&& value ); |
(2) | (seit C++11) |
| iterator insert_after( const_iterator pos, size_type count, const T& value ); |
(3) | (seit C++11) |
| template< class InputIt > iterator insert_after( const_iterator pos, InputIt first, InputIt last ); |
(4) | (seit C++11) |
| iterator insert_after( const_iterator pos, std::initializer_list<T> ilist ); |
(5) | (seit C++11) |
Fügt Elemente nach der angegebenen Position in den Container ein.
1,2) Fügt value nach dem Element ein, auf das pos zeigt.
3) Fügt count Kopien von value nach dem Element ein, auf das pos zeigt.
4) Fügt Elemente aus dem Bereich
[first, last) nach dem Element ein, auf das pos zeigt. Das Verhalten ist undefiniert, wenn first und last Iteratoren auf *this sind.5) Fügt Elemente aus der Initialisierungsliste ilist ein.
Keine Iteratoren oder Referenzen werden ungültig.
Inhalt |
[bearbeiten] Parameter
| pos | - | Iterator, nach dem der Inhalt eingefügt werden soll |
| value | - | Elementwert, der eingefügt werden soll |
| zählt | - | Anzahl der einzufügenden Kopien |
| first, last | - | das Iteratorenpaar, das den Quell- Bereich der einzufügenden Elemente definiert |
| ilist | - | Initialisierungsliste, aus der die Werte eingefügt werden sollen |
| Typanforderungen | ||
-InputIt muss die Anforderungen von LegacyInputIterator erfüllen. | ||
[bearbeiten] Rückgabewert
1,2) Iterator auf das eingefügte Element.
3) Iterator auf das zuletzt eingefügte Element oder pos, wenn count == 0.
4) Iterator auf das zuletzt eingefügte Element oder pos, wenn first == last.
5) Iterator auf das zuletzt eingefügte Element oder pos, wenn ilist leer ist.
[bearbeiten] Ausnahmen
Wenn aus irgendeinem Grund eine Ausnahme ausgelöst wird, haben diese Funktionen keine Auswirkungen (starke Ausnahme-Sicherheitsgarantie).
[bearbeiten] Komplexität
1,2) Konstant.
3) Linear bezüglich count.
4) Linear bezüglich std::distance(first, last).
5) Linear bezüglich ilist.size().
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <forward_list> #include <iostream> #include <string> #include <vector> void print(const std::forward_list<int>& list) { std::cout << "list: {"; for (char comma[3] = {'\0', ' ', '\0'}; int i : list) { std::cout << comma << i; comma[0] = ','; } std::cout << "}\n"; } int main() { std::forward_list<int> ints{1, 2, 3, 4, 5}; print(ints); // insert_after (2) auto beginIt = ints.begin(); ints.insert_after(beginIt, -6); print(ints); // insert_after (3) auto anotherIt = beginIt; ++anotherIt; anotherIt = ints.insert_after(anotherIt, 2, -7); print(ints); // insert_after (4) const std::vector<int> v = {-8, -9, -10}; anotherIt = ints.insert_after(anotherIt, v.cbegin(), v.cend()); print(ints); // insert_after (5) ints.insert_after(anotherIt, {-11, -12, -13, -14}); print(ints); }
Ausgabe
list: {1, 2, 3, 4, 5}
list: {1, -6, 2, 3, 4, 5}
list: {1, -6, -7, -7, 2, 3, 4, 5}
list: {1, -6, -7, -7, -8, -9, -10, 2, 3, 4, 5}
list: {1, -6, -7, -7, -8, -9, -10, -11, -12, -13, -14, 2, 3, 4, 5}[bearbeiten] Siehe auch
| konstruiert Elemente in-place nach einem Element (öffentliche Memberfunktion) | |
| fügt ein Element am Anfang ein (public member function) |