Namensräume
Varianten
Aktionen

std::experimental::erase (std::list)

Von cppreference.com
 
 
 
 
Definiert im Header <experimental/list>
template< class T, class A, class U >
void erase( std::list<T, A>& c, const U& value );
(Library Fundamentals TS v2)

Entfernt alle Elemente aus dem Container, die gleich value sind. Entspricht c.remove_if([&](auto& elem) { return elem == value; });.

Inhalt

[bearbeiten] Parameter

c - Container, aus dem gelöscht werden soll
value - Zu entfernender Wert

[bearbeiten] Komplexität

Linear.

[bearbeiten] Beispiel

#include <experimental/list>
#include <iostream>
 
auto show = [](const auto& container)
{
    for (auto e : container)
        std::cout << e;
    std::cout << '\n';
};
 
int main()
{
    std::list<int> data{1, 1, 1, 4, 1, 1, 1, 2, 1, 1, 1};
    show(data);
    std::experimental::erase(data, 1);
    show(data);
}

Ausgabe

11141112111
42

Anmerkungen

Im Gegensatz zu std::list::remove akzeptiert diese Funktionsschablone heterogene Typen und erzwingt keine Konvertierung in den Werttyp des Containers, bevor der Operator == aufgerufen wird.

[bearbeiten] Siehe auch

entfernt Elemente, die bestimmte Kriterien erfüllen
(Funktionstemplate) [edit]
entfernt Elemente, die bestimmte Kriterien erfüllen
(öffentliche Member-Funktion von std::list<T,Allocator>) [bearbeiten]
(library fundamentals 2 TS)
Entfernt alle Elemente aus einer std::list, die ein Prädikat erfüllen.
(Funktionstemplate) [bearbeiten]