Namespaces
Variants
Views
Actions

std::vector::shrink_to_fit

From cppreference.com
< cpp‎ | container‎ | vector
Revision as of 17:17, 2 November 2012 by P12bot (Talk | contribs)

void shrink_to_fit();
(since C++11)

Requests the removal of unused capacity.

It is a non-binding request to reduce capacity() to size(). It depends on the implementation if the request is fulfilled.

All iterators, including the past the end iterator, are potentially invalidated.

Contents

Parameters

(none)

Type requirements
-
T must meet the requirements of MoveInsertable.

Return value

(none)

Complexity

At most linear in the size of the container.

Notes

If an exception is thrown other than by T's move constructor, there are no effects.

Example

#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';
}

Possible output:

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

See also

returns the number of elements
(public member function) [edit]
returns the number of elements that can be held in currently allocated storage
(public member function) [edit]