(C++17) | ||||
Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
Associative | ||||
Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
Views | ||||
(C++20) | ||||
(C++23) | ||||
Tables | ||||
Iterator invalidation | ||||
Member function table | ||||
Non-member function table |
Member types | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Non-member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deduction guides(C++17) |
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.
Contents |
Linear in the size of the container, i.e., the number of elements.
Callingclear()
does not affect the result ofcapacity(). The standard's restriction on the changes to capacity is in the specification ofreserve(), seeSO.
#include <iostream>#include <string_view>#include <vector> void print_info(std::string_view rem,conststd::vector<int>& v){std::cout<< rem<<"{ ";for(constauto& 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=3After clear: { }Size=0, Capacity=3
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 |
erases elements (public member function)[edit] |