Namespaces
Variants

std::forward_list<T,Allocator>:: erase_after

From cppreference.net
iterator erase_after ( const_iterator pos ) ;
(1) (seit C++11)
(constexpr seit C++26)
iterator erase_after ( const_iterator first, const_iterator last ) ;
(2) (seit C++11)
(constexpr seit C++26)

Entfernt bestimmte Elemente aus dem Container.

1) Entfernt das Element nach pos .
Wenn der Iterator nach pos nicht dereferenzierbar ist, ist das Verhalten undefiniert.
2) Entfernt die Elemente im Bereich ( first , last ) .
Falls ein Iterator im Bereich ( first , last ) nicht dereferenzierbar ist, ist das Verhalten undefiniert.

Inhaltsverzeichnis

Parameter

pos - Iterator auf das Element vor dem zu entfernenden Element
first, last - das Paar von Iteratoren, das den Bereich der zu entfernenden Elemente definiert

Rückgabewert

1) Iterator auf das Element nach dem gelöschten oder end() falls kein solches Element existiert.
2) last

Komplexität

1) Konstante.
2) Linear in der Distanz zwischen first und last .

Ausnahmen

Wirft nichts.

Beispiel

#include <forward_list>
#include <iostream>
#include <iterator>
int main()
{
    std::forward_list<int> l = {1, 2, 3, 4, 5, 6, 7, 8, 9};
//  l.erase(l.begin()); // Fehler: keine Funktion erase()
    l.erase_after(l.before_begin()); // Entfernt erstes Element
    for (auto n : l)
        std::cout << n << ' ';
    std::cout << '\n';
    auto fi = std::next(l.begin());
    auto la = std::next(fi, 3);
    l.erase_after(fi, la);
    for (auto n : l)
        std::cout << n << ' ';
    std::cout << '\n';
}

Ausgabe:

2 3 4 5 6 7 8 9
2 3 6 7 8 9

Siehe auch

löscht den Inhalt
(öffentliche Elementfunktion)