The list::resize() is a built-in function in C++ STL which is used to resize a list container. It takes a number n as parameter and resizes the list container to contain exactly n elements.
- If the list already has more than n elements, then the function erases the elements from the list except the first n element.
- If the list contains less than n elements, then the function adds the difference number of elements to the list with their default values.
- The function also accepts a parameter val, if this parameter is specified and the number of elements in the list container is less than n then the function adds elements to the list with their value assigned to val.
Syntax:
list_name.resize(int n, value_type val)
Parameters: This function accepts two parameters as described below.
- n : This parameter specifies the number of elements upto which the list is needed to be resized.
- val: This is an optional parameter and if it is specified and the list contains less than n elements then the function will add elements to the list with their value assigned to val.
Return Value: This function does not return any value. Below program illustrate the list::resize() function in C++ STL:
CPP
// CPP program to illustrate the // list::resize() function #include <bits/stdc++.h> using namespace std;
int main()
{ // Creating a list
list< int > demoList;
// Adding elements to the list
demoList.push_back(10);
demoList.push_back(20);
demoList.push_back(30);
demoList.push_back(40);
// Initial list:
cout << "Initial List: ";
for ( auto itr = demoList.begin(); itr != demoList.end(); itr++)
cout << *itr << " ";
// Resize list to contain less elements
demoList.resize(2);
cout << "\n\nList after first resize: ";
for ( auto itr = demoList.begin(); itr != demoList.end(); itr++)
cout << *itr << " ";
// Resize list to contain more elements
demoList.resize(4);
cout << "\n\nList after second resize: ";
for ( auto itr = demoList.begin(); itr != demoList.end(); itr++)
cout << *itr << " ";
// resize list to contain more elements
// with a specified value
demoList.resize(5, 50);
cout << "\n\nList after third resize: ";
for ( auto itr = demoList.begin(); itr != demoList.end(); itr++)
cout << *itr << " ";
return 0;
} |
Output:
Initial List: 10 20 30 40 List after first resize: 10 20 List after second resize: 10 20 0 0 List after third resize: 10 20 0 0 50
Time Complexity – Linear O(N)