basic_string::reserve
Définit la fonction de la chaîne en un nombre au moins aussi grande comme 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
Disposer d'une capacité suffisante est important car les redistributions est beaucoup de temps et invalide toutes les références, pointeurs, et itérateurs qui font référence aux caractères dans une chaîne.
Le concept de la capacité pour les objets de type chaînes est le même que pour les objets de type vecteur.Contrairement au vecteur, la fonction membre reserve peut être appelée pour réduire la capacité d'un objet.La demande est non contraignante et peut ou ne peut pas se produire.Comme valeur par défaut pour le paramètre est zéro, un appel de reserve est une requête non contraignante de réduire la capacité de la chaîne d'adapter le nombre de caractères actuel dans la chaîne.La capacité 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 mentionné ci-dessus, cette demande est non contraignante 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 : <string>
l'espace de noms : DST