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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::list::resize - std::list::resize

Synopsis
	  void resize( size_type count );			   (1)
	  void resize( size_type count,	const value_type& value	); (2)

	  Resizes  the	container  to  contain count elements, does nothing if
       count ==	size().

	  If the current size is greater than count, the container is  reduced
       to its first
	  count	elements.

	  If the current size is less than count,

	  1) additional	default-inserted elements are appended.
	  2) additional	copies of value	are appended.

Parameters
	  count		 -	    new	size of	the container
	  value		  -	      the value	to initialize the new elements
       with

Type requirements
	  -
	  T must meet the requirements of DefaultInsertable in	order  to  use
       overload	(1).
	  -
	  T must meet the requirements of CopyInsertable in order to use over-
       load (2).

Return value
	  (none)

Complexity
	  Linear in the	difference between the current size and	count.

Notes
	  If value-initialization in overload (1) is undesirable, for example,
       if the elements
	  are  of  non-class  type  and	 zeroing  out is not needed, it	can be
       avoided by providing
	  a custom Allocator::construct.

Example
       // Run this code

	#include <list>
	#include <iostream>

	void print(auto	rem, const std::list<int>& c)
	{
	    for	(std::cout << rem; const int el	: c)
		std::cout << el	<< ' ';
	    std::cout << '\n';
	}

	int main()
	{
	    std::list<int> c = {1, 2, 3};
	    print("The list holds: ", c);

	    c.resize(5);
	    print("After resize	up to 5: ", c);

	    c.resize(2);
	    print("After resize	down to	2: ", c);

	    c.resize(6,	4);
	    print("After resize	up to 6	(initializer = 4): ", c);
	}

Output:
	The list holds:	1 2 3
	After resize up	to 5: 1	2 3 0 0
	After resize down to 2:	1 2
	After resize up	to 6 (initializer = 4):	1 2 4 4	4 4

	 Defect	reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	     DR	   Applied to	      Behavior as published		  Cor-
       rect behavior
	  LWG  132  C++98      random-access iterators were used to  use bidi-
       rectional
			      determine	the erase range		    iterators
	  LWG 679  C++98      resize() passed value by value	    passes  by
       const reference
	  LWG 1420 C++98      the behavior of resize(size()) was    specified
			      not specified

See also
	  size	 returns the number of elements
		 (public member	function)
	  insert inserts elements
		 (public member	function)
	  erase	 erases	elements
		 (public member	function)

http://cppreference.com		  2024.06.10		  std::list::resize(3)

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

home | help