std::string resize() method
- since C++20
- until C++20
// (1) Non const version onlyconstexpr void resize( size_type count );// (2) Non const version onlyconstexpr void resize( size_type count, CharT ch );// (1) Non const version onlyvoid resize( size_type count );// (2) Non const version onlyvoid resize( size_type count, CharT ch );Resizes the string to contain count characters.
If the current size is less than count, additional characters are appended:
- (1) Initializes appended characters to
CharT()('\0'ifCharTischar). - (2) Initializes appended characters to
ch.
If the current size is greater than count, the string is reduced to its first count elements.
Parameters
count- new size of the stringch- character to initialize the new characters with
Return value
(none)
Complexity
This section requires improvement. You can help by editing this doc page.
Exceptions
std::length_error if count > max_size(). Any exceptions thrown by corresponding Allocator.
Example
#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( "H" ); 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 with a given value 'a':\n" << "3. Before: " << quoted( short_string ) << '\n'; short_string.resize( desired_length, 'a' ); std::cout << "4. After: " << quoted( short_string ) << '\n'; std::cout << "Lengthen with char() == " << static_cast<int>(char()) << '\n' << "5. Before: " << quoted( short_string ) << '\n'; short_string.resize( desired_length + 3 ); std::cout << "6. After: \""; for (char c : short_string) { std::cout << (c == char() ? '@' : c); } std::cout << "\"\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'; } }}Basic functionality:Shorten:1. Before: "Where is the end?"2. After: "Where is"Lengthen with a given value 'a':3. Before: "H"4. After: "Haaaaaaa"Lengthen with char() == 05. Before: "Haaaaaaa"6. After: "Haaaaaaa@@@" Errors:1. Exception: std::bad_alloc2. Exception: std::bad_alloc3. Length error: basic_string::_M_replace_auxHover to see the original license.