Namespaces
Variants

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

From 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

関連項目

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