Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
void clear();
(noexcept seit C++11)
(constexpr seit C++20)

Entfernt alle Zeichen aus dem String, als ob erase(begin(), end()) ausgeführt worden wäre.

Alle Zeiger, Referenzen und Iteratoren werden ungültig.

Inhalt

[bearbeiten] Parameter

(keine)

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Hinweise

Im Gegensatz zu std::vector::clear ist es im C++-Standard nicht ausdrücklich erforderlich, dass capacity durch diese Funktion unverändert bleibt, aber bestehende Implementierungen ändern die Kapazität nicht. Das bedeutet, dass der zugewiesene Speicher nicht freigegeben wird (siehe auch shrink_to_fit).

[bearbeiten] Komplexität

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

[bearbeiten] 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

[bearbeiten] Siehe auch

entfernt Zeichen
(public member function) [edit]