std::basic_string<CharT,Traits,Allocator>::resize
From cppreference.com
< cpp | string | basic string
(1) | ||
void resize( size_type count ); |
(until C++20) | |
constexpr void resize( size_type count ); |
(since C++20) | |
(2) | ||
void resize( size_type count, CharT ch ); |
(until C++20) | |
constexpr void resize( size_type count, CharT ch ); |
(since C++20) | |
Resizes the string to contain count
characters.
If the current size is less than count
, additional characters are appended.
If the current size is greater than count
, the string is reduced to its first count
elements.
The first version initializes new characters to CharT(), the second version initializes new characters to ch
.
Parameters
count | - | new size of the string |
ch | - | character to initialize the new characters with |
Return value
(none)
Exceptions
std::length_error if count > max_size().
Any exceptions thrown by corresponding Allocator
.
If an exception is thrown for any reason, this function has no effect (strong exception guarantee). (since C++11)
Example
Run this code
#include <iostream> #include <iomanip> #include <stdexcept> int main() { const unsigned desired_length{ 8 }; std::string long_string( "Where is the end?" ); std::string short_string( "Ha" ); std::cout << "Basic functionality:\n" << "Shorten:\n" << "1. Before: " << quoted( long_string ) << '\n'; long_string.resize( desired_length ); std::cout << "2. After: " << quoted( long_string ) << '\n'; std::cout << "Lengthen:\n" << "3. Before: " << quoted( short_string ) << '\n'; short_string.resize( desired_length, 'a' ); std::cout << "4. After: " << quoted( short_string ) << "\n\n"; std::cout << "Errors:\n"; { std::string s; try { // size is OK, no length_error // (may throw bad_alloc) s.resize(s.max_size() - 1, 'x'); } catch (const std::bad_alloc& ex) { std::cout << "1. Exception: " << ex.what() << '\n'; } try { // size is OK, no length_error // (may throw bad_alloc) s.resize(s.max_size(), 'x'); } catch (const std::bad_alloc& ex) { std::cout << "2. Exception: " << ex.what() << '\n'; } try { // size is BAD, throw length_error s.resize(s.max_size() + 1, 'x'); } catch (const std::length_error& ex) { std::cout << "3. Length error: " << ex.what() << '\n'; } } }
Possible output:
Basic functionality: Shorten: 1. Before: "Where is the end?" 2. After: "Where is" Lengthen: 3. Before: "Ha" 4. After: "Haaaaaaa" Errors: 1. Exception: std::bad_alloc 2. Exception: std::bad_alloc 3. Length error: basic_string::_M_replace_aux
See also
returns the number of characters (public member function) |