basic_string::reserve

Ustawia pojemność ciągu jako liczbę równą co najmniej określonej liczbie.

void reserve(
    size_type _Count = 0
);

Parametry

  • _Count
    Liczba znaków, dla których pamięci jest zarezerwowany.

Uwagi

O wystarczającej pojemności jest ważne, ponieważ jest procesem czasochłonnym przeniesieniom i unieważnia wszystkie odwołania, wskaźniki i Iteratory, które odwołują się do znaków w ciągu.

Pojęcie zdolności produkcyjnych dla obiektów typu ciągów jest taka sama, jak w przypadku obiektów wektorowych typu.W odróżnieniu od wektor funkcji członka rezerwy może być wezwana do zmniejszyć pojemność obiektu.Żądanie jest niewiążących i może lub nie może się zdarzyć.Jako domyślne wartości dla parametru wynosi zero, wywołanie z rezerwy jest żądanie nie są wiążące do zmniejszenia zdolności ciąg do aktualnie dopasować liczbę znaków w ciągu.Nigdy nie zmniejsza się zdolność poniżej bieżącą liczbę znaków.

Wywołanie reserve jest to jedyny możliwy sposób, aby zmniejszyć pojemność ciąg.Jednakże jak wspomniano powyżej, jest to żądanie niewiążących i nie może się zdarzyć.

Przykład

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

Wymagania

Nagłówek: <ciąg>

Przestrzeń nazw: std

Zobacz też

Informacje

basic_string — Klasa