Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::basic_string::resize(3)  C++ Standard Libary std::basic_string::resize(3)

NAME
       std::basic_string::resize - std::basic_string::resize

Synopsis
	  void	resize(	 size_type  count  );				(until
       C++20)
	  constexpr void  resize(  size_type  count  );			(since
       C++20)
	  void	  resize(    size_type	 count,	  CharT	  ch   );	   (1)
       (until C++20)
	  constexpr  void  resize(   size_type	 count,	  CharT	  ch	   (2)
       (since C++20)
	  );

	  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'	 if  CharT  is
       char).
	  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 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 ef-
       fect (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( "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()	 ==    "    <<	  sta-
       tic_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';
		}
	    }
	}

Possible output:
	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() ==	0
	5. Before: "Haaaaaaa"
	6. After:  "Haaaaaaa@@@"

	Errors:
	1. Exception: std::bad_alloc
	2. Exception: std::bad_alloc
	3. Length error: basic_string::_M_replace_aux

See also
	  size		returns	the number of characters
	  length	(public	member function)
	  reserve	reserves storage
			(public	member function)
	  shrink_to_fit	reduces	memory usage by	freeing	unused memory
	  (C++11)	(public	member function)

http://cppreference.com		  2022.07.31	  std::basic_string::resize(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::wstring::resize&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help