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 over-
     load (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 <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		 Correct
     behavior
	LWG  132   C++98      random-access iterators were used to  use bidirec-
     tional
			    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)

home | help