namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:remove

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


kennen:lib:remove [2020-06-16 09:07] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== remove() ======
 +''#include'' [[..:include:algorithm]]
 +
 +<code cpp>
 +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 = {}) 
 +</code>
 + 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 
 +[[..:stl#assoziative Container]] einsetzbar.
 +Die Elemente hinter dem neuen Ende werden nicht wirklich entfernt.
 +Dies kann nur ein [[..:stl#Container]] selbst.
 +Von diesem Algorithmus gibt es eine spezielle Version für 
 +[[..:include:list|Listen]], 
 +die Elemente wirklich entfernt und ein deutlich besseres Zeitverhalten besitzt.
 +
 +==== Parameter ====
 +| ''first'' | Anfang des Bereiches |
 +| ''last''  | Ende des Bereiches |
 +| ''wert''  | zu entfernender Wert |
 +| ''proj''  | einstelliger Funktor (Vorgabe = ''std::identity'') |
 +| ''pol''   | [[..:include:execution|parallele Ausführungsart]] |
 +==== Ergebnis ====
 +Rückgabewert: Iterator ''j'' auf das neue Ende des Bereiches bzw. ''{j,last}''.
 +
 +==== Siehe auch ====
 +[[remove_copy]],
 +[[remove_copy_if]],
 +[[remove_if]].
 +
 +==== Beispiel ====
 +<code cpp remove.cpp>
 +#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';
 +}
 +</code>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki