次の方法で共有


basic_string::reserve

数値、文字列の容量を少なくとも一つ大きい数で指定します。

void reserve(
    size_type _Count = 0
);

パラメーター

  • _Count
    メモリが予約されている文字数。

解説

十分な容量があります。再割り当てが時間のかかる処理では、文字列の文字を表すすべての参照を、ポインター、および反復子を無効にするためです持つことで。

文字列型のオブジェクトの容量の概念は、型のベクターのオブジェクトの場合と同じです。ベクターとは異なりオブジェクトの容量を縮小する場合、メンバー関数 reserve が呼び出されるかがあります。要求はです。はなく、発生する可能性とそうでない場合があります。パラメーターの既定値がゼロであるため、文字列の文字数に合わせて、現在 reserve の呼び出しは、文字列の容量を縮小です。要求がないです。機能は、文字数では減りません。

reserve を呼び出すと、文字列の容量を縮小できる唯一の方法です。ただし、上で説明したように、この要求はです。はなく、発生する可能性があります。

使用例

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

必要条件

ヘッダー: <string>

名前空間: std

参照

関連項目

basic_string Class