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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::deque::resize - std::deque::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 ele-
       ments with

Type requirements
	  -
	  T must meet the requirements of MoveInsertable and 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 <deque>
	#include <iostream>

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

	int main()
	{
	    std::deque<int> c =	{1, 2, 3};
	    print("The deque 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 deque 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 679  C++98      resize() passed value by value	     passes by
       const reference
	  LWG 1418 C++98      the behavior of resize(size()) was not specified
			      specified
			      1. elements were removed by using
	  LWG 2033 C++11      erase()				      1.  uses
       pop_back()
			      2.  T  was  not required to be		2. re-
       quired
			      MoveInsertable

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::deque::resize(3)

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

home | help