Skip to main content

std::vector clear() method

// Non const version only
constexpr void clear() noexcept;

Erases all elements from the container. After this call, size() returns zero.

Leaves the capacity() of the vector unchanged.

note

The standard's restriction on the changes to capacity is in the specification of reserve().

Invalidation

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';
}
Output
Before clear: 1 2 3
Size=3, Capacity=3
Clear
After clear:
Size=0, Capacity=3
This article originates from this CppReference page. It was likely altered for improvements or editors' preference. Click "Edit this page" to see all changes made to this document.
Hover to see the original license.

std::vector clear() method

// Non const version only
constexpr void clear() noexcept;

Erases all elements from the container. After this call, size() returns zero.

Leaves the capacity() of the vector unchanged.

note

The standard's restriction on the changes to capacity is in the specification of reserve().

Invalidation

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';
}
Output
Before clear: 1 2 3
Size=3, Capacity=3
Clear
After clear:
Size=0, Capacity=3
This article originates from this CppReference page. It was likely altered for improvements or editors' preference. Click "Edit this page" to see all changes made to this document.
Hover to see the original license.