Namespaces
Variants

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

From cppreference.net
std::basic_string
size_type capacity ( ) const ;
(noexcept desde C++11)
(constexpr desde C++20)

Devuelve el número de caracteres para los que la cadena tiene actualmente espacio asignado.

Contenidos

Parámetros

(ninguno)

Valor de retorno

Capacidad del almacenamiento actualmente asignado, es decir, el almacenamiento disponible para almacenar elementos.

Complejidad

Constante.

Notas

Las ubicaciones de memoria obtenidas del asignador pero no disponibles para almacenar cualquier elemento no se cuentan en el almacenamiento asignado. Tenga en cuenta que el terminador nulo no es un elemento de std::basic_string .

Ejemplo

#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();
    }
}

Salida posible:

"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

Véase también

devuelve el número de caracteres
(función miembro pública)
reserva almacenamiento
(función miembro pública)