Namespaces
Variants

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

From cppreference.net
std::basic_string
void clear ( ) ;
(noexcept seit C++11)
(constexpr seit C++20)

Entfernt alle Zeichen aus der Zeichenkette, als ob durch Ausführung von erase ( begin ( ) , end ( ) ) .

Alle Zeiger, Referenzen und Iteratoren werden ungültig.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

(keine)

Hinweise

Im Gegensatz zu std::vector::clear verlangt der C++-Standard nicht explizit, dass die capacity durch diese Funktion unverändert bleibt, aber bestehende Implementierungen ändern die Kapazität nicht. Das bedeutet, dass sie den allokierten Speicher nicht freigeben (siehe auch shrink_to_fit ).

Komplexität

Linear in der Größe der Zeichenkette, obwohl bestehende Implementierungen in konstanter Zeit arbeiten.

Beispiel

#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';
}

Mögliche Ausgabe:

true

Siehe auch

Zeichen entfernen
(öffentliche Elementfunktion)