std::vector clear() method
- od C++20
- od C++11
- do C++11
// Non const version only
constexpr void clear() noexcept;
// Non const version only
void clear() noexcept;
// Non const version only
void clear();
Erases all elements from the container. After this call, size()
returns zero.
Leaves the capacity()
of the vector unchanged.
The standard's restriction on the changes to capacity is in the specification of reserve()
.
Invalidates any references, pointers, or iterators referring to contained elements. Any past-the-end iterators are also invalidated.
Parameters
(none)
Return value
(none)
Complexity
Linear in the size of the container - O(size()).
Example
#include <algorithm>
#include <iostream>
#include <vector>
int main()
{
std::vector<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() << ", Capacity=" << container.capacity() << '\n';
std::cout << "Clear\n";
container.clear();
std::cout << "After clear:";
std::for_each(container.begin(), container.end(), print);
std::cout << "\nSize=" << container.size() << ", Capacity=" << container.capacity() << '\n';
}
Before clear: 1 2 3
Size=3, Capacity=3
Clear
After clear:
Size=0, Capacity=3
Hover to see the original license.