std::basic_string<CharT,Traits,Allocator>::clear
Материал из cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
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); // <- не гарантировано
assert(s.empty());
assert(s.size() == 0);
}
Смотрите также
| удаляет символы (public функция-элемент) |