A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../memory/shared_ptr/../../container/vector/clear.html below:

std::vector<T,Allocator>::clear - cppreference.com

void clear();

(noexcept since C++11)
(constexpr since C++20)

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

Invalidates any references, pointers, and iterators referring to contained elements. Any past-the-end iterators are also invalidated.

[edit] Complexity

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

Notes

Calling clear() does not affect the result of capacity(). The standard's restriction on the changes to capacity is in the specification of reserve(), see SO.

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

Output:

Before clear: { 1 2 3 }
Size=3, Capacity=3
After clear: { }
Size=0, Capacity=3
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 omitted in C++11 complexity reaffirmed as linear [edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4