“cpp/string/basic string/clear”的版本间的差异
来自cppreference.com
< cpp | string | basic string
小 (~) |
小 |
||
(未显示2个用户的3个中间版本) | |||
第1行: | 第1行: | ||
− | {{cpp/string/basic_string/title | clear}} | + | {{cpp/string/basic_string/title|clear}} |
{{cpp/string/basic_string/navbar}} | {{cpp/string/basic_string/navbar}} | ||
− | {{ | + | {{|=c++11|= |
− | + | ||
void clear(); | void clear(); | ||
− | |||
− | |||
}} | }} | ||
− | |||
− | 如同通过执行 {{c|erase(begin(), end())}} 从 | + | 如同通过执行 {{c|erase(begin(), end())}} 从 移除所有字符。 |
− | + | 所有指针、引用及迭代器 。 | |
===参数=== | ===参数=== | ||
第19行: | 第15行: | ||
(无) | (无) | ||
− | ===注 | + | ===注 === |
− | 不同于 {{lc|std::vector::clear}} | + | 不同于 {{lc|std::vector::clear}} ++ 标准 要求此函数不更改 {{lc|capacity}},但既存实现都不更改容量。这意味着它们不释放分配的内存(参阅 {{lc|shrink_to_fit}})。 |
===复杂度=== | ===复杂度=== | ||
− | 与 | + | 与 大小成线性,尽管既存实现在常数时间内操作。 |
===示例=== | ===示例=== | ||
第29行: | 第25行: | ||
|code= | |code= | ||
#include <cassert> | #include <cassert> | ||
+ | |||
#include <string> | #include <string> | ||
第37行: | 第34行: | ||
s.clear(); | s.clear(); | ||
− | |||
assert(s.empty()); | assert(s.empty()); | ||
assert(s.size() == 0); | assert(s.size() == 0); | ||
+ | |||
} | } | ||
+ | |||
|output= | |output= | ||
+ | |||
}} | }} | ||
===参阅=== | ===参阅=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/string/basic_string/dsc erase}} | + | {{dsc inc|cpp/string/basic_string/dsc erase}} |
{{dsc end}} | {{dsc end}} | ||
{{langlinks|de|en|es|fr|it|ja|pl|pt|ru}} | {{langlinks|de|en|es|fr|it|ja|pl|pt|ru}} |
2024年10月21日 (一) 04:00的最后版本
void clear(); |
(C++11 起为 noexcept) (C++20 起为 constexpr ) |
|
如同通过执行 erase(begin(), end()) 从字符串中移除所有字符。
使所有指针、引用及迭代器失效。
目录 |
[编辑] 参数
(无)
[编辑] 返回值
(无)
[编辑] 注解
不同于 std::vector::clear,C++ 标准未明确要求此函数不更改 capacity,但既存实现都不更改容量。这意味着它们不释放分配的内存(参阅 shrink_to_fit)。
[编辑] 复杂度
与字符串的大小成线性,尽管既存实现在常数时间内操作。
[编辑] 示例
运行此代码
#include <cassert> #include <iostream> #include <string> int main() { std::string s{ "Exemplar" }; std::string::size_type const capacity = s.capacity(); s.clear(); assert(s.empty()); assert(s.size() == 0); std::cout << std::boolalpha << (s.capacity() == capacity) << '\n'; }
可能的输出:
true
[编辑] 参阅
移除字符 (公开成员函数) |