Namespaces
Variants

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

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

Devuelve la cantidad de caracteres para los que la cadena tiene espacio actualmente asignado.

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)