Пространства имён
Варианты
Действия

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

Материал из cppreference.com
 
 
 
std::basic_string
Функции-элементы
Доступ к элементам
Итераторы
Ёмкость
Операции
Поиск
Константы
Правила вывода (C++17)
Функции, не являющиеся элементами
Ввод/Вывод
Сравнение
(до C++20)(до C++20)(до C++20)(до C++20)(до C++20)(C++20)
Числовые преобразования
(C++11)(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Вспомогательные классы
 
<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 функция-элемент) [править]