std::basic_string<CharT,Traits,Allocator>::clear
Материал из cppreference.com
< cpp | string | basic string
void clear(); | (до C++11) | |
void clear()noexcept; | (начиная с C++11) (до C++20) | |
constexprvoid 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_typeconst capacity = s.capacity(); s.clear();assert(s.capacity()== capacity);// <- не гарантированоassert(s.empty());assert(s.size()==0);}
[править]Смотрите также
удаляет символы (public функция-элемент) |