std::list::clear(3)

NAME
std::list::clear - std::list::clear

Synopsis
   void clear(); (until C++11)
   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.
   Any past-the-end iterator remains valid.

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 <list>
 int main()
 {
     std::list<int> container{1, 2, 3};
     auto print = [](const int& n) { std::cout << " " << n; };
     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';
 }

Output:
 Before clear: 1 2 3
 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
   LWG 2231 C++11 complexity guarantee was mistakenly complexity reaffirmed as
                       omitted in C++11 linear

See also
   erase erases elements
         (public member function)