Namespaces
Variants

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

Depuis fr.cppreference.net
 
 
 
std::basic_string
 
size_type capacity() const;
(noexcept depuis C++11)
(constexpr depuis C++20)

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

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)