Spec-Zone.ru › C++

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);
}

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/basic_string/clear

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API