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

FreeBSD Manual Pages

  
 
  

home | help
std::basic_...rink_to_fit(3)  C++ Standard Libary std::basic_...rink_to_fit(3)

NAME
       std::basic_string::shrink_to_fit	- std::basic_string::shrink_to_fit

Synopsis
	  void shrink_to_fit();		   (since C++11)
					   (until C++20)
	  constexpr void shrink_to_fit();  (since C++20)

	  Requests the removal of unused capacity.

	  It  is  a non-binding	request	to reduce capacity() to	size().	It de-
       pends on	the
	  implementation if the	request	is fulfilled.

	  If (and only if) reallocation	takes place, all pointers, references,
       and iterators
	  are invalidated.

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 << "Size of std::string is " << sizeof s << " bytes\n"
		<< "Default-constructed	capacity is " << s.capacity()
		<< " and size is " << s.size() << '\n';
	    for	(int i=0; i<42;	i++)
		s.append(" 42 ");
	    std::cout << "Capacity after 42 appends is " << s.capacity()
		<< " and size is " << s.size() << '\n';
	    s.clear();
	    std::cout << "Capacity after clear() is " << s.capacity()
		<< " and size is " << s.size() << '\n';
	    s.shrink_to_fit();
	    std::cout << "Capacity after shrink_to_fit() is " << s.capacity()
		<< " and size is " << s.size() << '\n';
	}

Possible output:
	GCC output:
	Size of	std::string is 32 bytes
	Default-constructed capacity is	15 and size 0
	Capacity after 42 appends is 240 and size 168
	Capacity after clear() is 240 and size 0
	Capacity after shrink_to_fit() is 15 and size 0

	clang output (with -stdlib=libc++):
	Size of	std::string is 24 bytes
	Default-constructed capacity is	22 and size is 0
	Capacity after 42 appends is 191 and size is 168
	Capacity after clear() is 191 and size is 0
	Capacity after shrink_to_fit() is 22 and size is 0

See also
	  size	   returns the number of characters
	  length   (public member function)
		   returns the number of characters that can be	held  in  cur-
       rently allocated
	  capacity storage
		   (public member function)
	  resize   changes the number of characters stored
		   (public member function)

http://cppreference.com		  2022.07.31	  std::basic_...rink_to_fit(3)

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

home | help