Język C++
basic_string::shrink_to_fit
[metoda] Dopasowywuje ilość zaalokowanej pamięci do rozmiaru obiektu.Składnia
#include <string>
namespace std
{
template <
class TypZnaku,
class CechowanieZnakow = char_traits < TypZnaku >,
class Alokator = allocator < TypZnaku >
>
class basic_string
{
public:
void shrink_to_fit();
};
}
Opis szczegółowy
Metoda dopasowywuje ilość zarezerwowanej pamięci (
capacity) do wielkości obiektu (
size), jednakże z powodów optymalizacyjnych ilość zarezerwowanej pamięci może być większa wielkości obiektu.
Rzucane wyjątki
Jeżeli wyjątek zostanie rzucony, wartość obiektu nie ulegnie zmianie.
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( 100, 'x' );
std::cout << "1. Rozmiar str: " << str.capacity() << '\n';
str.resize( 10 );
std::cout << "2. Rozmiar str: " << str.capacity() << '\n';
str.shrink_to_fit();
std::cout << "3. Rozmiar str: " << str.capacity() << '\n';
return 0;
}
Przykładowe wyjście programu:
1. Rozmiar str: 111
2. Rozmiar str: 111
3. Rozmiar str: 15
Zagadnienia powiązane
capacity | Zwraca ilość zaalokowanej przestrzeni pamięciowej wyrażonej w liczbie znaków. (metoda) |
---|
reserve | Zapewnia określoną pojemność pojemnika. (metoda) |
---|
resize | Zmienia rozmiar obiektu. (metoda) |
---|
clear | Usuwa całą zawartość stringa. (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.