Freigeben über


basic_string::reserve

Legt die Kapazität der Zeichenfolge auf eine Zahl fest, die mindestens so groß ist, wie eine angegebene Anzahl.

void reserve(
    size_type _Count = 0
);

Parameter

  • _Count
    Die Anzahl der Zeichen, für die Speicher reserviert wird.

Hinweise

Die über ausreichende Kapazität erreicht ist wichtig, da Neuzuordnung ein viel Zeit in Anspruch ist und alle Verweise, Zeiger und Iteratoren ungültig macht, die Zeichen in einer Zeichenfolge verweisen.

Das Konzept der Kapazität für Objekte von Typzeichenfolgen entspricht für Objekte des Typvektors. Anders als Vektor ist die Memberfunktion reserve möglicherweise aufgerufen, um die Kapazität des Objekts zu senken. Die Anforderung ist nonbinding und geschieht möglicherweise. Da der Standardwert für den Parameter ist, ist ein Aufruf von reserve eine NichtBindungsanforderung, die Kapazität der Zeichenfolge verkleinert, die Anzahl der Zeichen in der Zeichenfolge nur anpassen. Die Kapazität wird niemals unter der aktuellen Anzahl der Zeichen reduziert.

reserve aufzurufen ist die einzige mögliche Methode, die Kapazität einer Zeichenfolge verkleinert. jedoch, wie oben erwähnt, passiert diese Anforderung ist nonbinding und nicht.

Beispiel

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

Anforderungen

Header: <Zeichenfolge>

Namespace: std

Siehe auch

Referenz

basic_string-Klasse