std::vector::shrink_to_fit
Z cppreference.com
void shrink_to_fit(); |
(od C++11) | |
Zgłasza rządanie o zwolnienie niewykorzystywanej pojemności.
Jest to niewiążące żądanie, aby zmniejszyć pojemność (capacity()) do obecnego rozmiaru kontenera (size()). To, czy to żądanie zostanie rzeczywiście wykonane, zależy od implementacji.
Jeśli następuje realokacja, wszystkie referencje i iteratory, wliczając iterator zakońcowy zostają unieważnione. W przeciwnym wypadku, żadne referencje ani iteratory nie zostają unieważnione.
Parametry
(brak)
| Wymagania względem typów | ||
| -T musi spełniać wymagania MoveInsertable. |
Zwracana wartość
(brak)
Złożoność
Co najwyżej liniowa względem rozmiaru kontenera.
Notka
Jeśli zostanie wyrzucony wyjątek (i nie będzie to wyjątek wyrzucony przez konstruktor przenoszący T), metoda nie zmieni zawartości kontenera.
Przykład
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v;
std::cout << "Default-constructed capacity is " << v.capacity() << '\n';
v.resize(100);
std::cout << "Capacity of a 100-element vector is " << v.capacity() << '\n';
v.clear();
std::cout << "Capacity after clear() is " << v.capacity() << '\n';
v.shrink_to_fit();
std::cout << "Capacity after shrink_to_fit() is " << v.capacity() << '\n';
}
Możliwy wynik:
Default-constructed capacity is 0
Capacity of a 100-element vector is 100
Capacity after clear() is 100
Capacity after shrink_to_fit() is 0
Zobacz także
| zwraca liczbę elementów (publiczna metoda) | |
| zwraca liczbę elementów, które mogą być przechowane w obecnie zarezerwowanej pamięci (publiczna metoda) |