Udostępnij za pośrednictwem


basic_string::reserve

Ustawia zdolności ciągu na liczbę co najmniej równie wysoka jak określonej liczby.

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ż przeniesieniom jest czasochłonne i unieważnia odniesienia, wskaźniki i Iteratory, które odwołują się do znaków w ciągu.

Koncepcja zdolności produkcyjnych dla obiektów typu ciągi jest takie samo jak obiekty typu vector.W odróżnieniu od vector, funkcja Członkowskie rezerwy mogą być nazywane zmniejszenie zdolności obiektu.Żądanie jest nonbinding i może lub nie może się zdarzyć.Jako domyślną wartość dla parametru wynosi zero, wywołanie z rezerwy jest żądanie niewiążące zmniejszenie zdolności ciągu do rozmiaru aktualnie liczbę znaków ciągu.Zdolności nigdy nie spada poniżej bieżącą liczbę znaków.

Wywołanie reserve jest jedynym możliwym sposobem na zmniejszenie zdolności ciąg.Jednakże jak wspomniano powyżej, to żądanie jest nonbinding 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: <string>

Obszar nazw: std

Zobacz też

Informacje

basic_string Class