Partager via


basic_string::reserve

Définit la capacité de la chaîne à un nombre au moins aussi grand qu'un nombre spécifié.

void reserve(
    size_type _Count = 0
);

Paramètres

  • _Count
    Le nombre de caractères pour lesquels la mémoire est réservée.

Notes

Avoir la valeur suffisante est important car les redistributions est un processus long et invalide tous les pointeurs références, et itérateurs qui font référence aux caractères d'une chaîne.

Le concept de la possibilité pour les objets des chaînes de type est le même que pour les objets de vecteur de type. Contrairement au vecteur, la fonction membre reserve peut être appelée pour réduire la capacité d'un objet. La demande n'est pas contraint et peut ne pas se produire. Comme valeur par défaut du paramètre est zéro, un appel de reserve est une demande pas contraint de réduire la taille de la chaîne d'ajuster le nombre de caractères figurant actuellement dans la chaîne. La valeur n'est jamais réduite sous le nombre actuel de caractères.

Appeler reserve est le seul moyen possible de réduire la capacité d'une chaîne. Toutefois, comme indiqué ci-dessus, la demande n'est pas contraint et ne peut pas se produire.

Exemple

// basic_string_reserve.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( ) 
{
   using namespace std;
   string str1 ("Hello world");
   cout << "The original string str1 is: " << str1 << endl;

   basic_string <char>::size_type sizeStr1, sizerStr1;
   sizeStr1 = str1.size ( );
   basic_string <char>::size_type capStr1, caprStr1;
   capStr1 = str1.capacity ( );

   // Compare size & capacity of the original string
   cout << "The current size of original string str1 is: " 
        << sizeStr1 << "." << endl;
   cout << "The capacity of original string str1 is: "
        << capStr1 << "." << endl << endl;

   // Compare size & capacity of the string
   // with added capacity
   str1.reserve ( 40 );
   sizerStr1 = str1.size ( );
   caprStr1 = str1.capacity ( );

   cout << "The string str1with augmented capacity is: "
        << str1 << endl;
   cout << "The current size of string str1 is: " 
        << sizerStr1 << "." << endl;
   cout << "The new capacity of string str1 is: "
        << caprStr1 << "." << endl << endl;

   // Compare size & capacity of the string
   // with downsized capacity
   str1.reserve ( );
   basic_string <char>::size_type sizedStr1;
   basic_string <char>::size_type capdStr1;
   sizedStr1 = str1.size ( );
   capdStr1 = str1.capacity ( );

   cout << "The string str1 with downsized capacity is: "
        << str1 << endl;
   cout << "The current size of string str1 is: " 
        << sizedStr1 << "." << endl;
   cout << "The reduced capacity of string str1 is: "
        << capdStr1 << "." << endl << endl;
}
  

Configuration requise

En-tête : <chaîne>

Espace de noms : std

Voir aussi

Référence

basic_string, classe