Namespaces
Variants

std::unordered_set<Key,Hash,KeyEqual,Allocator>:: clear

From cppreference.net

void clear ( ) noexcept ;
(seit C++11)
(constexpr seit C++26)

Löscht alle Elemente aus dem Container. Nach diesem Aufruf gibt size() null zurück.

Macht alle Referenzen, Zeiger und Iteratoren ungültig, die auf enthaltene Elemente verweisen. Kann auch End-Iteratoren ungültig machen.

Inhaltsverzeichnis

Komplexität

Linear in der Größe des Containers, d.h. der Anzahl der Elemente.

Beispiel

#include <iostream>
#include <string_view>
#include <unordered_set>
void print_info(std::string_view rem, const std::unordered_set<int>& v)
{
    std::cout << rem << "{ ";
    for (const auto& value : v)
        std::cout << value << ' ';
    std::cout << "}\n";
    std::cout << "Size=" << v.size() << '\n';
}
int main()
{
    std::unordered_set<int> container{1, 2, 3};
    print_info("Before clear: ", container);
    container.clear();
    print_info("After clear: ", container);
}

Mögliche Ausgabe:

Before clear: { 1 2 3 }
Size=3
After clear: { }
Size=0

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 2550 C++11 für ungeordnete assoziative Container unklar, ob Komplexität
linear in der Anzahl der Elemente oder Buckets ist
klargestellt, dass es linear in der Anzahl der Elemente ist

Siehe auch

löscht Elemente
(öffentliche Elementfunktion)