Namensräume
Varianten
Aktionen

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

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

Gibt die Anzahl der Zeichen zurück, für die die Zeichenkette derzeit Speicherplatz zugewiesen hat.

Inhalt

[bearbeiten] Parameter

(keine)

[bearbeiten] Rückgabewert

Kapazität des aktuell zugewiesenen Speichers, d.h. des verfügbaren Speichers zur Speicherung von Elementen.

[bearbeiten] Komplexität

Konstant.

[bearbeiten] Hinweise

Speicherorte, die vom Allokator erhalten wurden, aber nicht für die Speicherung von Elementen verfügbar sind, werden nicht zum zugewiesenen Speicher gezählt. Beachten Sie, dass das Nullterminierungszeichen kein Element von std::basic_string ist.

[bearbeiten] Beispiel

#include <iomanip>
#include <iostream>
#include <string>
 
void show_capacity(std::string const& s)
{
    std::cout << std::quoted(s) << " has capacity " << s.capacity() << ".\n";
}
 
int main()
{
    std::string s{"Exemplar"};
    show_capacity(s);
 
    s += " is an example string.";
    show_capacity(s);
 
    s.clear();
    show_capacity(s);
 
    std::cout << "\nDemonstrate the capacity's growth policy."
                 "\nSize:  Capacity:  Ratio:\n" << std::left;
 
    std::string g;
    auto old_cap{g.capacity()};
 
    for (int mark{}; mark != 5; ++mark)
    {
        while (old_cap == g.capacity())
            g.push_back('.');
 
        std::cout << std::setw( 7) << g.size()
                  << std::setw(11) << g.capacity()
                  << std::setw(10) << g.capacity() / static_cast<float>(old_cap) << '\n';
 
        old_cap = g.capacity();
    }
}

Mögliche Ausgabe

"Exemplar" has capacity 15.
"Exemplar is an example string." has capacity 30.
"" has capacity 30.
 
Demonstrate the capacity's growth policy.
Size:  Capacity:  Ratio:
16     30         2
31     60         2
61     120        2
121    240        2
241    480        2

[bearbeiten] Siehe auch

gibt die Anzahl der Zeichen zurück
(public member function) [edit]
reserviert Speicher
(public member function) [edit]