std::basic_string<CharT,Traits,Allocator>::clear
void clear(); | (до C++11) | |
void clear() noexcept; | (с C++11) (до C++20) | |
constexpr void clear() noexcept; | (с C++20) |
Удаляет все символы из строки, как если бы выполнено erase(begin(), end()).
Все указатели, ссылки и итераторы становятся недействительными.
Параметры
(нет)
Возвращаемое значение
(нет)
Примечания
В отличие от std::vector::clear, стандарт C++ не требует явно, чтобы capacity оставалось неизменным после вызова этой функции, но существующие реализации не изменяют ёмкость. Это означает, что они не освобождают выделенную память (см. также shrink_to_fit).
Сложность
Линейная относительно размера строки, хотя существующие реализации работают за постоянное время.
Пример
#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);
}См. также
| удаляет символы (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/basic_string/clear