basic_string::reserve
Define a capacidade de cadeia de caracteres em um número pelo menos tão grande como um número especificado.
void reserve(
size_type _Count = 0
);
Parâmetros
- _Count
O número de caracteres para a memória que está sendo permitida.
Comentários
Ter suficiente a capacidade é importante porque as realocações é um processo demorado e invalidam todas as referências, ponteiros, e iteradores que referenciam caracteres em uma cadeia de caracteres.
O conceito de capacidade para objetos de cadeias de caracteres de tipo é o mesmo que para objetos do vetor do tipo.A o contrário do vetor, a função de membro reserve pode ser chamada para reduzir a capacidade de um objeto.a solicitação é nonbinding e pode ou não pode acontecer.Porque o valor padrão para o parâmetro for zero, uma chamada de reserve é uma solicitação de associação não reduzir a possibilidade da cadeia de caracteres caber no momento o número de caracteres na cadeia de caracteres.A capacidade é reduzida nunca abaixo do número de caracteres atual.
A chamada reserve é a única maneira de possível reduzir a capacidade de uma cadeia de caracteres.Em o entanto, conforme mencionado acima, a solicitação é nonbinding e não pode acontecer.
Exemplo
// 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
Cabeçalho: <string>
namespace: STD