std::basic_string<CharT,Traits,Allocator>::capacity
Von cppreference.com
< cpp | string | 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
Führen Sie diesen Code aus
#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) | |
| reserviert Speicher (public member function) |