Język C++
basic_string::reserve
[metoda] Zapewnia określoną pojemność pojemnika.Składnia
#include <string>
namespace std
{
template <
class TypZnaku,
class CechowanieZnakow = char_traits < TypZnaku >,
class Alokator = allocator < TypZnaku >
>
class basic_string
{
public:
void reserve( size_type _n = 0 );
};
}
Argumenty
Opis szczegółowy
Metoda zapewnia, by ilość zaalokowanej pamięci
capacity wynosiła co najmniej
_n. W przypadku
_n mniejszego aktualnej ilości zaalokowanej pamięci kontener z powodów optymalizacyjnych nie musi się kurczyć, może pozostać bez zmian. W przeciwnej sytuacji, gdzie trzeba zaalokować więcej pamięci, kontener może zaalokować jej więcej.
Rzucane wyjątki
Jeżeli wyjątek zostanie rzucony, wartość obiektu nie ulegnie zmianie.
Jeżeli
_n jest większe od wartości zwracanej przez
max_size, to zostanie rzucony
length_error.
Jeżeli szablon korzysta z domyślnego alokatora, to
bad_alloc zostanie rzucony, gdy funkcja będzie chcieć zaalokować pamięć i operacja się nie powiedzie.
Przykład
#include <iostream>
#include <string>
typedef std::basic_string < char, std::char_traits < char >, std::allocator < char >> MojString;
int main()
{
MojString str( "Test string" );
std::cout << "1. Rozmiar zaalokowanej pamieci: " << str.capacity() << '\n';
str.reserve( 100 );
std::cout << "2. Rozmiar zaalokowanej pamieci: " << str.capacity() << '\n';
return 0;
}
Standardowe wyjście programu:
1. Rozmiar zaalokowanej pamieci: 15
2. Rozmiar zaalokowanej pamieci: 111
Zagadnienia powiązane
capacity | Zwraca ilość zaalokowanej przestrzeni pamięciowej wyrażonej w liczbie znaków. (metoda) |
---|
shrink_to_fit | Dopasowywuje ilość zaalokowanej pamięci do rozmiaru obiektu. (metoda) |
---|
resize | Zmienia rozmiar obiektu. (metoda) |
---|
max_size | Zwraca maksymalny możliwy rozmiar kontenera. (metoda) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.