C++ 参考手册

位置:首页 > C++ 参考手册 >字符串库 >std::basic_string > 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()) 从 string 移除所有字符。

非法化所有指针、引用及迭代器。

参数

(无)

返回值

(无)

注解

不同于 std::vector::clear , C++ 标准不显式要求此函数不更改 capacity ,但既存实现都不更改容量。这意味着它们不释放分配的内存(参阅 shrink_to_fit )。

复杂度

与 string 大小成线性,尽管既存实现在常数时间内操作。

示例

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


参阅

移除字符
(公开成员函数)