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

< cpp‎ | string‎ | basic string

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

### 参阅

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