std::basic_string<CharT,Traits,Allocator>::shrink_to_fit
From cppreference.com
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.
If (and only if) reallocation takes place, all pointers, references, and iterators are invalidated.
Contents |
Parameters
(none)
Return value
(none)
Complexity
(unspecified) | (until C++17) |
Linear in the size of the string | (since C++17) |
Example
Run this code
#include <iostream> #include <string> int main() { std::string s; std::cout << "Default-constructed capacity is " << s.capacity() << " and size " << s.size() << '\n'; for (int i=0; i<42; i++) s.append(" 42 "); std::cout << "Capacity after a couple of appends is " << s.capacity() << " and size " << s.size() << '\n'; s.clear(); std::cout << "Capacity after clear() is " << s.capacity() << " and size " << s.size() << '\n'; s.shrink_to_fit(); std::cout << "Capacity after shrink_to_fit() is " << s.capacity() << " and size " << s.size() << '\n'; }
Possible output:
Default-constructed capacity is 15 and size 0 Capacity after a couple of appends is 240 and size 168 Capacity after clear() is 240 and size 0 Capacity after shrink_to_fit() is 15 and size 0
See also
returns the number of characters (public member function) | |
returns the number of characters that can be held in currently allocated storage (public member function) |