Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: clear

From cppreference.net
std::basic_string
void clear ( ) ;
(noexcept начиная с C++11)
(constexpr начиная с C++20)

Удаляет все символы из строки, как если бы выполнялся вызов erase ( begin ( ) , end ( ) ) .

Все указатели, ссылки и итераторы становятся недействительными.

Содержание

Параметры

(нет)

Возвращаемое значение

(нет)

Примечания

В отличие от std::vector::clear , стандарт C++ явно не требует, чтобы capacity оставался неизменным после вызова этой функции, однако существующие реализации не изменяют capacity. Это означает, что они не освобождают выделенную память (см. также shrink_to_fit ).

Сложность

Линейно по размеру строки, хотя существующие реализации работают за константное время.

Пример

#include <cassert>
#include <iostream>
#include <string>
int main()
{
    std::string s{"Exemplar"};
    std::string::size_type const capacity = s.capacity();
    s.clear();
    assert(s.empty());
    assert(s.size() == 0);
    std::cout << std::boolalpha << (s.capacity() == capacity) << '\n';
}

Возможный вывод:

true

Смотрите также

удаляет символы
(публичная функция-член)