std::string clear() 方法
- 自 C++20 起
- 自 C++11 起
- 直到 C++11
// Non const version only
constexpr void clear() noexcept;
// Non const version only
void clear() noexcept;
// Non const version only
void clear();
通过执行以下操作来删除字符串中的所有字符
erase(begin(), end())
失效
所有指针、引用和迭代器都将失效。
参数
(无)
返回值
(无)
复杂度
标准保证至少以容器大小线性时间操作 - O(size())。
但现有实现以常量时间操作 - O(1)。
备注
与 std::vector::clear()
不同,C++ 标准没有明确要求此函数不改变容量,但现有实现确实不改变容量。
这意味着它们不会释放已分配的内存(另请参见 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);
}