Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>::clear

ja.cppreference.net より
 
 
 
std::basic_string
 
void clear();
(C++11 から noexcept)
(C++20 から constexpr)

erase(begin(), end())を実行したかのように、文字列から全ての文字を削除します。

全てのポインタ、参照、およびイテレータは無効化されます。

パラメータ

(なし)

戻り値

(なし)

注記

std::vector::clear とは異なり、C++標準はこの関数によって capacity が変更されないことを明示的に要求していませんが、既存の実装では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

関連項目

文字を削除する
(公開メンバ関数)