Namespaces
Variants

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

From cppreference.net
std::basic_string
size_type capacity ( ) const ;
(non levé depuis C++11)
(constexpr depuis C++20)

Retourne le nombre de caractères pour lesquels la chaîne a actuellement alloué de l'espace.

Table des matières

Paramètres

(aucun)

Valeur de retour

Capacité du stockage actuellement alloué, c'est-à-dire l'espace disponible pour stocker les éléments.

Complexité

Constante.

Notes

Les emplacements mémoire obtenus de l'allocateur mais non disponibles pour stocker un élément quelconque ne sont pas comptabilisés dans le stockage alloué. Notez que le terminateur nul n'est pas un élément du std::basic_string .

Exemple

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

Sortie possible :

"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

Voir aussi

retourne le nombre de caractères
(fonction membre publique)
réserve du stockage
(fonction membre publique)