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 elements
     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 overload
     (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		 Correct
     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. required
			    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)

home | help