“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}}
{{dcl begin}}
+
{{|=c++11|=
{{dcl rev multi | until1=c++11 | dcl1=
+
 
void clear();
 
void clear();
| dcl2=
 
void clear() noexcept;
 
 
}}
 
}}
{{dcl end}}
 
  
 如同通过执行 {{c|erase(begin(), end())}} 从 string  移除所有字符。
+
 如同通过执行 {{c|erase(begin(), end())}} 从 移除所有字符。
  
  非法化 所有指针、引用及迭代器。
+
  所有指针、引用及迭代器 。
  
 
===参数===
 
===参数===
第19行: 第15行:
 
 (无)
 
 (无)
  
===注 ===
+
===注 ===
 不同于 {{lc|std::vector::clear}} , C++ 标准 不显式 要求此函数不更改 {{lc|capacity}} ,但既存实现都不更改容量。这意味着它们不释放分配的内存(参阅 {{lc|shrink_to_fit}} )。
+
 不同于 {{lc|std::vector::clear}} ++ 标准 要求此函数不更改 {{lc|capacity}},但既存实现都不更改容量。这意味着它们不释放分配的内存(参阅 {{lc|shrink_to_fit}})。
  
 
===复杂度===
 
===复杂度===
 与 string  大小成线性,尽管既存实现在常数时间内操作。
+
 与 大小成线性,尽管既存实现在常数时间内操作。
  
 
===示例===
 
===示例===
第29行: 第25行:
 
|code=
 
|code=
 
#include <cassert>
 
#include <cassert>
 +
 
#include <string>
 
#include <string>
  
第37行: 第34行:
  
 
     s.clear();
 
     s.clear();
    assert(s.capacity() == capacity);
 
 
     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的最后版本

 
 
 
std::basic_string
 
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

[编辑] 参阅

移除字符
(公开成员函数) [编辑]