#include
<algorithm>
For remove (For first, For last, T wert) For remove (Exec pol, For first, For last, T wert) Range ranges::remove (Range r, T wert, Proj proj = {}) Range ranges::remove (For first, For last, T wert, Proj proj = {})
Entfernt im Bereich [first,last) alle Elemente e
mit proj(e) == wert
.
Der Algorithmus arbeitet so, dass entfernten Elementen und ihren Nachfolgern nachfolgende Werte zugewiesen werden. Damit ist der Algorithmus nicht für assoziative Container einsetzbar. Die Elemente hinter dem neuen Ende werden nicht wirklich entfernt. Dies kann nur ein Container selbst. Von diesem Algorithmus gibt es eine spezielle Version für Listen, die Elemente wirklich entfernt und ein deutlich besseres Zeitverhalten besitzt.
first | Anfang des Bereiches |
last | Ende des Bereiches |
wert | zu entfernender Wert |
proj | einstelliger Funktor (Vorgabe = std::identity ) |
pol | parallele Ausführungsart |
Rückgabewert: Iterator j
auf das neue Ende des Bereiches bzw. {j,last}
.
#include <algorithm> #include <string> #include <iostream> int main() { std::string s = "Hallo, Welt"; std::cout << s << '\n'; auto i = std::remove(begin(s), end(s), 'l'); s.erase(i, end(s)); std::cout << s << '\n'; }