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

FreeBSD Manual Pages

  
 
  

home | help
std::vector::shrink_to_fit(3) C++ Standard Libarystd::vector::shrink_to_fit(3)

NAME
       std::vector::shrink_to_fit - std::vector::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 whether the request is	fulfilled.

	  If reallocation occurs, all iterators, including the	past  the  end
       iterator, and all
	  references to	the elements are invalidated. If no reallocation takes
       place, no
	  iterators or references are invalidated.

Parameters
	  (none)

Type requirements
	  -
	  T must meet the requirements of MoveInsertable.

Return value
	  (none)

Complexity
	  At most linear in the	size of	the container.

Notes
	  If  an exception is thrown other than	by T's move constructor, there
       are no effects.

Example
       // Run this code

	#include <iostream>
	#include <vector>

	int main()
	{
	    std::vector<int> v;
	    std::cout << "Default-constructed capacity is " << v.capacity() <<
       '\n';
	    v.resize(100);
	    std::cout << "Capacity of a	100-element vector is  "  <<  v.capac-
       ity() <<	'\n';
	    v.resize(50);
	    std::cout  <<  "Capacity  after resize(50) is " << v.capacity() <<
       '\n';
	    v.shrink_to_fit();
	    std::cout << "Capacity after shrink_to_fit() is " <<  v.capacity()
       << '\n';
	    v.clear();
	    std::cout << "Capacity after clear() is " << v.capacity() << '\n';
	    v.shrink_to_fit();
	    std::cout  << "Capacity after shrink_to_fit() is " << v.capacity()
       << '\n';
	    for	(int i = 1000; i < 1300; ++i)
		v.push_back(i);
	    std::cout << "Capacity after adding	300 elements is	" <<  v.capac-
       ity() <<	'\n';
	    v.shrink_to_fit();
	    std::cout  << "Capacity after shrink_to_fit() is " << v.capacity()
       << '\n';
	}

Possible output:
	Default-constructed capacity is	0
	Capacity of a 100-element vector is 100
	Capacity after resize(50) is 100
	Capacity after shrink_to_fit() is 50
	Capacity after clear() is 50
	Capacity after shrink_to_fit() is 0
	Capacity after adding 300 elements is 512
	Capacity after shrink_to_fit() is 300

See also
	  size	   returns the number of elements
		   (public member function)
		   returns the number of elements that can  be	held  in  cur-
       rently allocated
	  capacity storage
		   (public member function)

http://cppreference.com		  2022.07.31	 std::vector::shrink_to_fit(3)

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

home | help