Przestrzenie nazw
Warianty
Działania

std::vector::shrink_to_fit

Z cppreference.com
< cpp‎ | container‎ | vector
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.

Spis treści

[edytuj] Parametry

(brak)

Wymagania względem typów
-
T musi spełniać wymagania MoveInsertable.

[edytuj] Zwracana wartość

(brak)

[edytuj] Złożoność

Co najwyżej liniowa względem rozmiaru kontenera.

[edytuj] 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.

[edytuj] 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

[edytuj] Zobacz także

zwraca liczbę elementów
(publiczna metoda) [edit]
zwraca liczbę elementów, które mogą być przechowane w obecnie zarezerwowanej pamięci
(publiczna metoda) [edit]