std::unordered_map::clear(3)

NAME
std::unordered_map::clear - std::unordered_map::clear

Synopsis
   void clear() noexcept; (since C++11)
   Erases all elements from the container. After this call, size() returns zero.
   Invalidates any references, pointers, or iterators referring to contained elements.
   May also invalidate past-the-end iterators.

Parameters
   (none)

Return value
   (none)

Complexity
   Linear in the size of the container, i.e., the number of elements.

Example
// Run this code
 #include <algorithm>
 #include <iostream>
 #include <unordered_map>
 int main()
 {
     std::unordered_map<int, char> container{{1, 'x'}, {2, 'y'}, {3, 'z'}};
     auto print = [](std::pair<const int, char>& n) {
         std::cout << " " << n.first << '(' << n.second << ')';
     };
     std::cout << "Before clear:";
     std::for_each(container.begin(), container.end(), print);
     std::cout << "\nSize=" << container.size() << '\n';
     std::cout << "Clear\n";
     container.clear();
     std::cout << "After clear:";
     std::for_each(container.begin(), container.end(), print);
     std::cout << "\nSize=" << container.size() << '\n';
 }

Possible output:
 Before clear: 1(x) 2(y) 3(z)
 Size=3
 Clear
 After clear:
 Size=0
  Defect reports
   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.
      DR Applied to Behavior as published Correct behavior
                       for unordered associative
   LWG 2550 C++11 containers, unclear if complexity clarified that it's linear in
                       is linear in the number of the number of elements
                       elements or buckets

See also
   erase erases elements
   (C++11) (public member function)