list::resize() es una función incorporada en C++ STL que se usa para cambiar el tamaño de un contenedor de lista. Toma un número n como parámetro y cambia el tamaño del contenedor de la lista para que contenga exactamente n elementos.
- Si la lista ya tiene más de n elementos, la función borra los elementos de la lista excepto el primer n elemento.
- Si la lista contiene menos de n elementos, la función agrega el número de diferencia de elementos a la lista con sus valores predeterminados.
- La función también acepta un parámetro val , si se especifica este parámetro y el número de elementos en el contenedor de la lista es menor que n, entonces la función agrega elementos a la lista con su valor asignado a val .
Sintaxis :
list_name.resize(int n, value_type val)
Parámetros : Esta función acepta dos parámetros como se describe a continuación.
- n : este parámetro especifica el número de elementos hasta los que se necesita cambiar el tamaño de la lista.
- val : este es un parámetro opcional y si se especifica y la lista contiene menos de n elementos, la función agregará elementos a la lista con su valor asignado a val .
Valor devuelto: esta función no devuelve ningún valor. El siguiente programa ilustra la función list::resize() en 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; }
Producción:
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
Complejidad del tiempo – O(N) lineal