“cpp/string/basic string/clear”的版本间的差异
来自cppreference.com
< cpp | string | basic string
小 (~) |
(P0980R1) |
||
第4行: | 第4行: | ||
{{dcl rev multi | until1=c++11 | dcl1= | {{dcl rev multi | until1=c++11 | dcl1= | ||
void clear(); | void clear(); | ||
− | | dcl2= | + | | dcl2= |
void clear() noexcept; | void clear() noexcept; | ||
+ | |||
+ | |||
}} | }} | ||
{{dcl end}} | {{dcl end}} | ||
第19行: | 第21行: | ||
(无) | (无) | ||
− | ===注 | + | ===注 === |
不同于 {{lc|std::vector::clear}} , C++ 标准不显式要求此函数不更改 {{lc|capacity}} ,但既存实现都不更改容量。这意味着它们不释放分配的内存(参阅 {{lc|shrink_to_fit}} )。 | 不同于 {{lc|std::vector::clear}} , C++ 标准不显式要求此函数不更改 {{lc|capacity}} ,但既存实现都不更改容量。这意味着它们不释放分配的内存(参阅 {{lc|shrink_to_fit}} )。 | ||
2020年2月18日 (二) 00:47的版本
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); }
参阅
移除字符 (公开成员函数) |