std::string clear() method
- since C++20
- since C++11
- until C++11
// Non const version only
constexpr void clear() noexcept;
// Non const version only
void clear() noexcept;
// Non const version only
void clear();
Removes all characters from the string as if by executing
erase(begin(), end())
All pointers, references, and iterators are invalidated.
Parameters
(none)
Return value
(none)
Complexity
The standard guarantees at least linear in the size of the container - O(size()).
But existing implementations operate in constant time - O(1).
Notes
Unlike for std::vector::clear()
, the C++ standard does not explicitly require that capacity is unchanged by this function, but existing implementations do not change capacity.
This means that they do not release the allocated memory (see also shrink_to_fit()
).
Example
#include <cassert>
#include <string>
int main()
{
std::string s{ "Exemplar" };
std::string::size_type const capacity = s.capacity();
s.clear();
assert(s.capacity() == capacity); // <- not guaranteed
assert(s.empty());
assert(s.size() == 0);
}
Hover to see the original license.