basic_string::reserve

Establece la capacidad de cadena en un número que sea al menos tan grande como un número especificado.

void reserve(
    size_type _Count = 0
);

Parámetros

  • _Count
    El número de caracteres que se reservando memoria.

Comentarios

Tener suficiente capacidad es importante porque las reasignaciones es un proceso largo y reemplace todas las referencias, punteros, e iteradores que hacen referencia a los caracteres de una cadena.

El concepto de capacidad para objetos de tipos string es igual que para los objetos del tipo. A diferencia de vector, la función reserve miembro se puede llamar para reducir la posibilidad de que un objeto. La solicitud es nonbinding y puede o no puede producirse. Como el valor predeterminado para el parámetro es cero, una llamada de reserve es una solicitud de no enlace para reducir la capacidad de la cadena de ajustarse el número de caracteres actualmente en la cadena. La capacidad nunca se reduce debajo del número de caracteres actual.

La llamada reserve es la única manera de reducir la capacidad de una cadena. Sin embargo, como se indicó anteriormente, esta solicitud es nonbinding y no producirse.

Ejemplo

// 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;
}
  

Requisitos

Encabezado: <string>

Espacio de nombres: std

Vea también

Referencia

basic_string (Clase)