void reserve( size_type new_cap = 0 ); |
Informs a std::basic_string object of a planned change in size, so that it can manage the storage allocation appropriately.
- If
new_capis greater than the currentcapacity(), new storage is allocated, andcapacity()is made equal or greater thannew_cap. - If
new_capis less than the currentcapacity(), this is a non-binding shrink request. - If
new_capis less than the currentsize(), this is a non-binding shrink-to-fit request equivalent toshrink_to_fit()(since C++11).
If a capacity change takes place, all iterators and references, including the past-the-end iterator, are invalidated.
Parameters
| new_cap | - | new capacity of the string |
Return value
(none).
Exceptions
Throws std::length_error if new_cap is greater than max_size().
May throw any exceptions thrown by std::allocator_traits<Allocator>::allocate(), such as std::bad_alloc.
Complexity
At most linear in the size() of the string.
Example
#include <cassert>
#include <string>
int main()
{
std::string s;
std::string::size_type new_capacity{ 100u };
assert(new_capacity > s.capacity());
s.reserve(new_capacity);
assert(new_capacity <= s.capacity());
}See also
| returns the number of characters that can be held in currently allocated storage (public member function) |
Please login to continue.