跳到主要内容

std::string clear() 方法

// Non const version only
constexpr void clear() noexcept;

通过执行以下操作来删除字符串中的所有字符

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);
}
本文源自此 CppReference 页面。它可能为了改进或编辑者的偏好而进行了修改。点击“编辑此页面”查看此文档的所有更改。
悬停查看原始许可证。

std::string clear() 方法

// Non const version only
constexpr void clear() noexcept;

通过执行以下操作来删除字符串中的所有字符

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);
}
本文源自此 CppReference 页面。它可能为了改进或编辑者的偏好而进行了修改。点击“编辑此页面”查看此文档的所有更改。
悬停查看原始许可证。